pra*_*d24 -1 php regex html-parsing
我怎么能找到这个div的内容preg_match()?
可在此处找到指向我页面的链接.
我想获得此页面的产品价值.我做了这样的事情,但我什么都得不到:
if (!preg_match("<div id=\"productPrice\">(.*)<\/div>/si", $data, $dealer_price))
return;
Run Code Online (Sandbox Code Playgroud)
我也在尝试以下方面:
if (!preg_match("<div class=\"price\">(.*)<\/div>/si", $data, $dealer_price))
return;
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助.
您的正则表达式没有按预期工作的原因有几个.
@id属性后面有一个属性.*是一个贪婪的运算符,你应该*?用来返回一个非贪婪的匹配.要修复正则表达式:
preg_match('~<div id="productPrice"[^>]*>(.*?)</div>~si', $data, $dealer_price);
echo trim($dealer_price[1]); //=> "$249.95"
Run Code Online (Sandbox Code Playgroud)
用于DOM从数据中获取产品值,而不是正则表达式.
$doc = new DOMDocument;
$doc->loadHTML($data);
$xpath = new DOMXPath($doc);
$node = $xpath->query("//div[@id='productPrice']")->item(0);
echo trim($node->nodeValue); //=> "$249.95"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4603 次 |
| 最近记录: |