在stackoverflow上查看一些答案后,
preg_match_all('/<img[^>]+>/i',$html, $result);
$img = array();
foreach( $result[0] as $img_tag)
{
preg_match_all('/(title)=("[^"]*")/i',$img_tag, $img[$img_tag]);
}
//print_r($img);
foreach ($img as $imgg)
echo $imgg[2][0];
上面的代码找到了img标题,但是它返回"Waterfall fountain"
而不是Waterfall fountain
,请注意"
我应该在正则表达式中添加什么才能删除"
?
谢谢
答案 0 :(得分:3)
只需将"
移出捕获组:
'/(title)="([^"]*)"/i'
答案 1 :(得分:1)
将引号移到括号外
preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]);
答案 2 :(得分:1)
将引号移到括号外。
检查一下:
preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]);
答案 3 :(得分:1)
使用XML Parser和此XPath获取img元素的所有标题:
//img/@title
的示例
$dom = new DOMDocument;
$dom->loadHML($html);
$xp = new DOMXPath($dom);
foreach($xp->query('//img/@title') as $attribute) {
echo $attribute->nodeValue;
}
进一步阅读:
答案 4 :(得分:0)
目前,您正在记住所有匹配的"
部分。您可以将引号括在括号外:
preg_match_all('/(title)="([^"]*)"/i',$img_tag, $img[$img_tag]);
答案 5 :(得分:0)
正则表达式中的括号构成一个捕获组,它控制存储在$img[$img_tag]
中的内容。您的论坛中包含引号:("[^"]*")
。如果您不想要引号,只需将它们移到组外:"([^"]*)"