Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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_匹配所有正确的语法_Php - Fatal编程技术网

Php preg_匹配所有正确的语法

Php preg_匹配所有正确的语法,php,Php,可能重复: 我有一行最新代码作为图像下载脚本的一部分,如下所示: preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $content, $matches); 在preg_match_all命令中。img始终采用以下格式: 我尝试了一些不同的变体,但出现了一些错误,最后在没有下面的引号的情况下尝试了,但仍然没有结果,我的语法错了吗 preg_match_all('|<img.*?id=iwi.*?src=[\'"](.*

可能重复:

我有一行最新代码作为图像下载脚本的一部分,如下所示:

preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $content, $matches);
在preg_match_all命令中。img始终采用以下格式:

我尝试了一些不同的变体,但出现了一些错误,最后在没有下面的引号的情况下尝试了,但仍然没有结果,我的语法错了吗

preg_match_all('|<img.*?id=iwi.*?src=[\'"](.*?)[\'"].*?>|i', $content, $matches);
preg|u match|u all('i',$content,$matches);

这是问题的第一位。您不知道它是
,还是

相反,您应该使用解析器:

$dom = new DOMDocument();
$dom->loadHTML($content);
$img = $dom->getElementById("iwi");
$src = $img->getAttribute("src");

这是我们的首要问题。您不知道它是
,还是

相反,您应该使用解析器:

$dom = new DOMDocument();
$dom->loadHTML($content);
$img = $dom->getElementById("iwi");
$src = $img->getAttribute("src");

如果你不顾所有的反对意见坚持使用preg's,这些方法同样有效

// [\'"]* is useful cos sometime can't find " or ', and * means 0 or 1 time search
preg_match_all('~<img.*?id=[\'"]*([^\s\'"]*).*?src=[\'"]*([^\s\'"]*).*?>~i', $content, $matches);
preg_match_all('~<img.*?id=[\'"]*(?P<id>[^\s\'"]*).*?src=[\'"]*(?P<src>[^\s\'"]*).*?>~i', $content, $matches);
print_r($matches);
/[\'”]*很有用,因为有时找不到“或”,而*表示0次或1次搜索
preg_match_all(“~~i”,$content,$matches);
preg_match_all(“~[^\s\'”]*).>~i',$content,$matches);
打印(匹配项);

如果你不顾所有反对意见坚持使用preg,那么这些方法同样有效

// [\'"]* is useful cos sometime can't find " or ', and * means 0 or 1 time search
preg_match_all('~<img.*?id=[\'"]*([^\s\'"]*).*?src=[\'"]*([^\s\'"]*).*?>~i', $content, $matches);
preg_match_all('~<img.*?id=[\'"]*(?P<id>[^\s\'"]*).*?src=[\'"]*(?P<src>[^\s\'"]*).*?>~i', $content, $matches);
print_r($matches);
/[\'”]*很有用,因为有时找不到“或”,而*表示0次或1次搜索
preg_match_all(“~~i”,$content,$matches);
preg_match_all(“~[^\s\'”]*).>~i',$content,$matches);
打印(匹配项);

如果您不知道regex,那么有一些属性,比如
qp($html)->find(“img#iwi”)->attr(“src”)
id
属性在
src
属性之前吗?你是如何尝试添加引号的?另外,如果您需要提取很多这样的属性,请帮自己一个忙,使用HTML解析器。图像总是采用这种格式:@RoccoTheTaco:引号放错了位置。它们应该在
iwi
附近,而不是
id=iwi
<代码>preg|u match|u all(“|i”,$content,$matches)好吧,XML标记中的属性总是必须按给定的固定顺序排列,这是一件好事。哦,等等……如果你不知道正则表达式,那么有,比如
qp($html)->find(“img#iwi”)->attr(“src”)
。在
src
属性之前是
id
属性吗?你是如何尝试添加引号的?另外,如果您需要提取很多这样的属性,请帮自己一个忙,使用HTML解析器。图像总是采用这种格式:@RoccoTheTaco:引号放错了位置。它们应该在
iwi
附近,而不是
id=iwi
<代码>preg|u match|u all(“|i”,$content,$matches)好吧,XML标记中的属性总是必须按给定的固定顺序排列,这是一件好事。哦,等等……回答重复的问题不是否决正确答案的有效理由。奇怪的是,我昨天两次否决了一个正确的答案,最终得到了4票,所以它只说+2,但我得到了36票。回答重复的问题不是否决正确答案的有效理由。奇怪的是,昨天我有一个正确的答案被否决了两次,最终得到了4张赞成票,所以它只说+2,但我得到了36张赞成票。