gpt4 book ai didi

php - php geonames 时区中的 echo 状态消息

转载 作者:IT王子 更新时间:2023-10-28 23:54:49 25 4
gpt4 key购买 nike

我正在使用以下代码 php 获取时区:

$url = 'http://api.geonames.org/timezone?lat=' . $latitude . '&lng=' . $longitude . '&username=demo';
$xml = simplexml_load_file($url);

foreach($xml->children() as $timezone)
{


echo "TimezoneId: ".$timezone->timezoneId." ";
echo "DstOffset : ".$timezone->dstOffset." ";
echo "GmtOffset : ".$timezone->gmtOffset." ";

}

它可以工作,但对于南极洲的纬度和经度,例如它会给出错误状态消息:

<status message="no timezone information found for lat/lng" value="15"/>

如何回显这个消息?

我正在尝试这个:

if ($xml->status) {
echo "error: ".$timezone->status['message']. "";


}

但不工作

最佳答案

您正试图从对象中获取一个不存在的元素。在这样的 XML 元素中,您具有属性和一些值,例如您的情况:countryCode、countryName、dstOffset、gmtOffset 等。如果您使用 var_dump(),您可以看到错误消息在这些属性中,它们是一个数组。

举个例子:

var_dump() 在一个没有问题的位置:

object(SimpleXMLElement)#4 (12) {
["@attributes"]=>
array(1) {
["tzversion"]=>
string(11) "tzdata2014i"
}
["countryCode"]=>
string(2) "KG"
["countryName"]=>
string(10) "Kyrgyzstan"
["lat"]=>
string(7) "40.4246"
["lng"]=>
string(7) "74.0021"
["timezoneId"]=>
string(12) "Asia/Bishkek"
["dstOffset"]=>
string(3) "6.0"
["gmtOffset"]=>
string(3) "6.0"
["rawOffset"]=>
string(3) "6.0"
["time"]=>
string(16) "2015-07-09 19:53"
["sunrise"]=>
string(16) "2015-07-09 05:41"
["sunset"]=>
string(16) "2015-07-09 20:36"
}

这里是南极洲的 var_dump():

object(SimpleXMLElement)#4 (1) {
["@attributes"]=>
array(2) {
["message"]=>
string(41) "no timezone information found for lat/lng"
["value"]=>
string(2) "15"
}
}

您可以像这样轻松处理和打印此错误消息:

if ($xml->status) {
echo 'error:' . $timezone->attributes()->message;
}

关于php - php geonames 时区中的 echo 状态消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31264155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com