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张赞成票。