我有一个简单但不可见的(对我来说)代码错误。你可以帮我吗?XPath正则表达式结合preg_match
有了这个代码在我的PHP文件:
$location = $xpath2->query("//script")->item(1)->textContent;
我得到了(选择)此:
<script class="" type="text/javascript">
//<![CDATA[
var html = '';
var lat = 44.793530904744074;
var lang = 20.5364727973938;
if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map_canvas"));
var ct = new GLatLng(lat, lang);
map.setCenter(ct, 15);
map.addControl(new GSmallMapControl());
//map.addControl(new GHierarchicalMapTypeControl());
var gm=new GMarker(ct);
if(html != '') {
GEvent.addListener(gm, "click", function() {
this.openInfoWindowHtml(html);
});
}
map.addOverlay(gm);
map.enableContinuousZoom();
map.enableInfoWindow();
}
//]]>
</script>
然后我尝试使用此代码获取 'LAT' 和 '语言':
$location = $xpath2->query("//script")->item(1)->textContent;
preg_match('/var\s+lat\s+=\s+(\d+\.\d+)\s*;/', $location, $lat);
preg_match('/var\s+lang\s+=\s+(\d+\.\d+)\s*;/', $location, $lng);
$data['lat'] = $lat[1];
$data['lng'] = $lng[1];
但总是显示lat
和lang
是0
,0
当它们应该是44.34534
和20.5345
。
请帮助!在那里你认为我错了(我的英语不是很好,对不起为)
确定'lang'拼写正确 –
是我”?当然,因为我复制该代码。100%是'lang' – asdasdasd