Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 网页抓取URL包含</a>;末尾的结束标记如何删除_Php_Html_Regex_Parsing - Fatal编程技术网

Php 网页抓取URL包含</a>;末尾的结束标记如何删除

Php 网页抓取URL包含</a>;末尾的结束标记如何删除,php,html,regex,parsing,Php,Html,Regex,Parsing,因此,我有这段代码来解析来自网站的url链接,但它在url的末尾包含和结束标记,如下所示http://www2.enekoshop.jp/shop/tadaseinikuten/ 虽然我使用的是纯文本来刮取文本,但它有结束标记。如何删除它?将您的preg\u replace()模式稍微扩展一下怎么样 旧模式:/[^\00-\255]+/u 新模式:~[^\00-\255]+$~u 我只是更改您的模式分隔符,以避免在中转义正斜杠,并使用$锚添加一个“可选”(='or')以仅在字符串末尾匹配 $e

因此,我有这段代码来解析来自网站的url链接,但它在url的末尾包含和
结束标记,如下所示
http://www2.enekoshop.jp/shop/tadaseinikuten/


虽然我使用的是
纯文本
来刮取文本,但它有
结束标记。如何删除它?

将您的
preg\u replace()
模式稍微扩展一下怎么样

旧模式:
/[^\00-\255]+/u

新模式:
~[^\00-\255]+$~u

我只是更改您的模式分隔符,以避免在
中转义正斜杠,并使用
$
锚添加一个“可选”(
='or')以仅在字符串末尾匹配

$email1 = preg_replace('~[^\00-\255]+|</a>$~u','',trim($home->find('div[id="home"] div[id="mainblock"] div[class="txtblock"]', 8)->children(1)->plaintext));
$email1=preg_replace('~[^\00-\255]+|$~u','',trim($home->find('div[id=“home”]div[id=“mainblock”]div[class=“txtblock”]”,8)->子对象(1)->明文);

Ehh我很困惑,您正在将域放入名为
$email
的变量中,然后调用
filter\u var(…,filter\u SANITIZE\u email)在其上?如果该
标记始终存在,为什么不使用substring函数<代码>substr($url,0,strlen($url)-4)
@Paul Etienne这并不是真正解决问题,而是症状。什么样的对象是$html?@Xatenev它实际上来自codeigniter中的库。我将完成代码。
$email1 = preg_replace('~[^\00-\255]+|</a>$~u','',trim($home->find('div[id="home"] div[id="mainblock"] div[class="txtblock"]', 8)->children(1)->plaintext));