Php 用正则表达式在抓取的html中预匹配经度和纬度

Php 用正则表达式在抓取的html中预匹配经度和纬度,php,regex,preg-match,Php,Regex,Preg Match,你能看到我的正则表达式在哪里出错了吗 脚本应该使用file_get_内容加载一些html,然后使用正则表达式和preg_匹配来提取晶格度和经度。目前,下面的脚本输出的纬度和经度都是空白的,我不确定到底出了什么问题,正则表达式对我来说不是一个很强的领域。谢谢 $url = 'http://www.homebase.co.uk/webapp/wcs/stores/servlet/StoreLocatorFlow?slsid=658'; $scrapedPage = file_get_content

你能看到我的正则表达式在哪里出错了吗

脚本应该使用file_get_内容加载一些html,然后使用正则表达式和preg_匹配来提取晶格度和经度。目前,下面的脚本输出的纬度和经度都是空白的,我不确定到底出了什么问题,正则表达式对我来说不是一个很强的领域。谢谢

$url = 'http://www.homebase.co.uk/webapp/wcs/stores/servlet/StoreLocatorFlow?slsid=658';

$scrapedPage = file_get_contents($url);
返回的html中有一行,如下所示:

<p class="geo"> <abbr class="latitude" title="52.19166">52.19166</abbr> <abbr class="longitude" title="-2.23108">-2.23108</abbr> </p> 

52.19166-2.23108

然后我们进行预匹配:

preg_match('/class="latitude"\s*title="([^"]+)"/', $scrapedPage, $lat);
preg_match('/class="longitude"\s*title="([^"]+)"/', $scrapedPage, $lon);

echo '<latitude>'.$lat[1].'</latitude>';
echo '<longitude>'.$lon[1].'</longitude>';
preg_match('/class=“latitude”\s*title=“([^“]+)”/”,$scrapedPage,$lat);
preg_match('/class=“longide”\s*title=“([^“]+)”/”,$scrapedPage,$lon);
回显“.$lat[1]”;
回显“.$lon[1]”;

适合我。
$scrapedPage
中一定有什么东西破坏了它。虽然你应该使用DOM来解析它,但对我来说似乎也很好。OP中的链接重定向到错误页面,你确定你得到了想要的数据吗?Ben的评论可能是关键。我怀疑您没有尝试过
var\u dump($scrapedPage)
,您认为下载进行得很顺利。我得说远程站点正在做一个简单的推荐人检查。这个问题似乎离题了,因为它不是关于HTML解析的。