如何使用preg_match获取图像网址

时间:2012-05-05 14:23:38

标签: php

我想使用preg_match从其他页面抓取图片网址,但问题是我的PHP代码总是返回空结果!我是php的新手。

这是该页面上图像的结构......

<a class="prs_link" href="xxxx"><img src="THE IMAGE URL I WANT TO GET" width="310" height="196"></a>

我目前的代码是:

preg_match_all('/a class="prs_link" href="([^"]+)"><img src=.+?><\/a>/',$screen,$results);

1 个答案:

答案 0 :(得分:1)

你会看到数百个Q&amp; A在SO警告编码人员使用正则表达式来解析HTML。这些评论/答案有充分的理由,所以请坚持这一点,避免找到正则表达式解决方案来解析HTML。

以下是一种推荐的解析HTML的方法(使用DOM):

$html = '<a class="prs_link" href="xxxx"><img src="THE IMAGE URL I WANT TO GET" width="310" height="196"></a>';
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html); // loads your html
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//a[@class='prs_link']/img/@src)");
echo "src=[$src]\n";

输出:

src=[THE IMAGE URL I WANT TO GET]