1

我有这个字符串:

$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);

这就是我到目前为止所拥有的,但还没有完全正确

4

2 回答 2

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');
于 2013-03-21T17:50:02.420 回答
2

您的变量名中有错字,并且您没有使用正确的占位符:

echo preg_replace($parern, '<img src="$2">', $string);
于 2013-03-21T17:50:00.793 回答