我用PHP平庸,对XML无知……如果你能详细一点,它会帮助我学习.
我正在尝试使用PHP编程来执行此链接的脚本… http://ws.geonames.org/postalCodeSearch?postalcode=VARIABLE_ZIP&country=US. VARIABLE_ZIP是在表单中输入的实际邮政编码,它将在上面的链接中提交信息.该链接的输出创建了一个我不希望在我的网站上显示的XML页面.
我想要做的是将XML数据Latitude和Longitude值作为php中的变量捕获并存储到数据库中.
1)我有一张表格
2)用户将他们的邮政编码输入表格
4)我想把这些变量带回PHP,这样我就可以将它们存储在我的数据库中
*对我来说,第3步是一个未知的过程.
这是XML代码在单独的页面上生成的…(我不希望页面显示):
= = = = =
1
90210
Beverly Hills
US
34.09011
-118.40648
CA
California
037
Los Angeles
= = = = =
有人向我提供了以下内容,但我不确定如何执行它并解析我需要的变量:
$pc = $_POST['postalcode'];
$c = $_POST['country'];
$xml = file_get_contents("http://ws.geonames.org/postalCodeSearch?postalcode={$pc}&country={$c}");
file_put_contents("geopost_{$pc}_{$c}.xml",$xml);
?>
谢谢您的帮助!
解决方法:
最好的办法是通过直接导航到链接(我使用自己的邮政编码和国家/地区)来查看XML的结构,然后在树中导航,使用SimpleXMLElement获取所需的数据.此示例获取纬度和经度:
$pc = $_POST['postalcode'];
$c = $_POST['country'];
$xml = new SimpleXMLElement(file_get_contents("http://ws.geonames.org/postalCodeSearch?postalcode=".$pc."&country=".$c));
$lat = $xml->code->lat;
$lng = $xml->code->lng;
echo "Lat: $lat
Lng: $lng";
?>
这应该有助于您开始存储这些值.
标签:php,xml,parsing,geolocation
来源: https://codeday.me/bug/20190723/1512937.html