【发布时间】:2017-02-28 14:26:14
【问题描述】:
我想从其他网站上删除有关产品的信息,并且保存价格的标签如下所示:
<span class="text10black">Price: <strong style="color:#000000;">15.90 $</strong></span>
在这种情况下,我只需要提取 15.90。 我试过这个:
$site_content = file_get_contents('url');
preg_match_all('#<span class="text10black">Price: <strong style="color:#000000;">(.*?) $</strong></span>#', $site_content, $product_prices);
“url”是我从中废弃产品的 url,但是当我使用 var_dump() 检查 $product_prices 变量时,它显示为 NULL
【问题讨论】:
-
您应该很少使用正则表达式解析 HTML。请改用a PHP DOM parser。
-
除了@JayBlanchard 所说的之外,您还必须使用
\$转义美元符号,因为它是一个匹配行尾的特殊正则表达式 -
为什么不使用strip_tags。这将删除其中的 html 部分,然后您就可以使用它了
-
@Sphinx 但您仍然必须获取正确的 HTML 元素,否则标记的其余部分(例如,包括“价格:”)也将包括在内。
标签: php regex web-crawler