1

我正在尝试从给定的字符串中获取 HTML 图像标记 url。我使用的 PHP 方法preg_match("/src=\"([^\s\"]+)/",$body,$matches);在大多数情况下都可以正常工作,但是我无法从以下链接获取 url...

src=http://4.bp.blogspot.com/-LqmY1y4DCO0/T39EoCmzfoI/AAAAAAAACp0/TRKmdPmhJ90/s640/how+to+make+cheesecake+carrots,+orange+cheesecake+recipe,+recipes,+Easter+dessert+.jpg

谁能解释一下这个失败的原因。

4

3 回答 3

0

用这个正则表达式试试:)

preg_match_all("/src=([^\\s]+)/", $body, $m);
print_r($a);
于 2012-04-07T14:35:04.073 回答
0

您的测试字符串在 src= 之后没有 " 字符,并且您的正则表达式需要它,因此它不匹配。如果您想测试您的正则表达式,我建议您使用程序 RegexCoach,它会突出显示匹配项并允许您逐步完成匹配过程,所以你可以很容易地看到它失败的地方。

于 2012-04-07T10:18:41.917 回答
0

用 DOM 加载?

$dom = new DOMDocument();
$dom->loadHTML($var);

$xpath = new DOMXPath($dom);
$img = $xpath->query('//img[@src]');

if(count($img)>0)
{
    foreach($img as $i)
        echo $i->getAttribute('src');
}
于 2012-04-07T10:31:00.710 回答