我有这个字符串:
$string = '<div class="displayEmbededImage" sourcefile="http://site.com/images/myImage.jpg" style="width:200px;"><p>Some text goes here</p></div>';
我需要一个正则表达式,它将选择源文件的内容并返回它:
$parern = '/<div(.*)sourcefile="([^"]+)"(.*)>(.*)<\/div>/s';
preg_replace($pattern, '<img src="$1">', $string);
到目前为止,这就是我所拥有的,但还没有完全正确
答案 0 :(得分:4)
你不在html上使用正则表达式。甚至不尝试。改为使用DOM:
$d = new DOMdocument();
$d->loadHTML('... your html here ...');
$xp = new DOMXpath($d);
$res = $xp->query('//div[@class="displayEmbededImage"]');
$source = $res->item(0)->getAttribute('sourcefile');
答案 1 :(得分:2)
您的变量名中有拼写错误,而您没有使用正确的占位符:
echo preg_replace($parern, '<img src="$2">', $string);