我正在尝试使用regex src属性(没有其内容/值)并将其替换为其他内容。
它还必须验证HTML标记(示例中为img)。
测试数据示例:
<img src="http://example.com" class="something" />
现在我需要只获得“src”并替换它。是否可以将它作为第一个/唯一匹配的PHP中的lookbehind / lookahead?
答案 0 :(得分:1)
你的意思是这样吗?
preg_replace('/(<img[^>]*src=")[^"]*"/', '$1'.$new.'"', $html)
后视是不可能的,因为它的长度不可变。
答案 1 :(得分:1)
不应使用正则表达式来解析html 相反,修改DOM以执行您需要的操作。
$doc = new DOMDocument();
$doc->loadHTML('<img src="http://example.com" class="something" />');
$images = $doc->getElementsByTagName('img');
foreach ($images as $image) {
$image->setAttribute('src','http://www.google.com');
echo htmlentities($doc->saveHTML($image));
}