在过去的一个小时里,我一直在搜索以前的问题,所以如果这存在于其他地方,对不起,但我没有找到它。我对 PHP 很陌生,所以如果这是一个新手问题,请原谅我。我也通过谷歌搜索。
我正在尝试自动从 airnav.com 获取各个机场的纬度/经度信息以进行地图更新。我有一个带有机场代码的 XML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AIRPORTS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<AIRPORT>MXA</AIRPORT>
<AIRPORT>SDM</AIRPORT>
</AIRPORTS>
我的PHP是:
<?php
$xml=simplexml_load_file("airports.xml");
foreach($xml->AIRPORT as $arpt)
{
if (preg_match('#[0-9]#', $arpt)){
$arptName = $arpt;}
else{
$arptName = "K" . $arpt;}
$content = file_get_contents("http://www.airnav.com/airport/" . $arptName);
preg_match('#([0-9]{2,2}\.[0-9]{1,})\s\/\s(\-[0-9]{2,2}\.[0-9]{1,})#', $content, $arptmatch);
$lat = $arptmatch[1]; //ERROR HERE (line 27)
$long = $arptmatch[2]; //AND HERE (line 28)
echo "Airport: $arpt\nLat: $lat\nLong: $long\n";
}
?>
这适用于第一个机场,我明白了:
Airport: MXA Lat: 35.8944444 Long: -90.1545833
其中,当我去现场检查是正确的。但对于第二个机场,我得到:
Airport: SDM Lat: Long:
除了以下错误:
Notice: Undefined offset: 1 in /home/a5308473/public_html/phpStuff/readFromAirNav.html on line 27
Notice: Undefined offset: 2 in /home/a5308473/public_html/phpStuff/readFromAirNav.html on line 28
我似乎找不到任何方法来解决这个问题。有谁知道怎么了?