简单的php正则表达式与preg_replace

时间:2013-03-21 17:45:51

标签: php regex preg-replace

我有这个字符串:

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

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

2 个答案:

答案 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);