Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 preg_match_all出现问题_Php_Regex_Html Parsing - Fatal编程技术网

Php preg_match_all出现问题

Php preg_match_all出现问题,php,regex,html-parsing,Php,Regex,Html Parsing,这是我的密码: preg_match_all('/<a href="(.+?)index.php(.+?)&abc=(.+?)"/', $dataToParse, $matches); foreach ($matches as $val) { $absUrl = $val[1] . 'index.php' . $val[2] . '&abc=' . $val[3]; echo $absUrl; } preg\u match\u all('/尝试在$ma

这是我的密码:

preg_match_all('/<a href="(.+?)index.php(.+?)&abc=(.+?)"/', $dataToParse, $matches);

foreach ($matches as $val)
{
    $absUrl = $val[1] . 'index.php' . $val[2] . '&abc=' . $val[3];

    echo $absUrl;
}

preg\u match\u all('/尝试在
$matches
一个之后传递常量
preg\u SET\u ORDER
,如下所示:

preg_match_all("/.../",$dataToParse,$matches,PREG_SET_ORDER);

有关原因的详细信息,请参见

$matches[0]是整个字符串,$matches[1]是第一个匹配组,$matches[2]是第二个匹配组,依此类推

for( $i = 0; $i < count( $matches[1]); $i++)
{
    $absUrl = $matches[1][$i] . 'index.php' . $matches[2][$i] . '&abc=' . $matches[3][$i];
    echo $absUrl;
}
for($i=0;$i
正确地使用DOM解析器,而不是使用正则表达式来解析HTML。现在是2013年。使用XML解析器。@JackManey:继承了一个项目,其他人也是这样做的。不要使用正则表达式来解析HTML。你无法用正则表达式可靠地解析HTML。一旦HTML改变了你的预期,y我们的代码将被破坏。有关如何使用PHP模块正确解析HTML的示例,请参阅。e不是解析HTML,e是解析URL。mah答案中可能会出现重影。