-2

我想用来preg_match从另一个页面抓取图像 URL,但问题是我的 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);
4

1 回答 1

1

您将在此处看到数百个关于 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]
于 2012-05-05T14:48:51.310 回答