過去 1 時間、以前の質問を検索していたので、これが別の場所にある場合は申し訳ありませんが、見つかりませんでした。私は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
サイトにアクセスして確認すると、どちらが正しいですか。しかし、2 番目の空港については、次のようになります。
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
これを修正する方法が見つからないようです。誰が何が悪いのか知っていますか?