我想使用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);
答案 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]