2010-03-20 44 views
0

geonames.org获得了一个web api,您可以使用它来获取城市的所有层次结构。如何使用JavaScript API/PHP的网页API?

你只需输入id,你就会将数据返回到xml。

http://ws.geonames.org/hierarchy?geonameId=2657896 

我不知道如何获取与PHP和JavaScript的URL,我应该使用哪一个。

导致id的位于mysql数据库中。我会让他们与PHP。

我应该使用file_get_contents,curl还是fopen?

和javascript中有什么函数? jquery $ .post?听说它只能访问本地主机。

会很好,在这里有一些指导,甚至更好的代码示例。

谢谢!

回答

0

我应该使用file_get_contents,curl还是fopen?

你应该使用一个适合你的消费代码和你的服务器上启用的代码。如果响应是XML,则应考虑使用simplexml_load_file()获取文件。另请参阅Geonames PEAR package for this purpose

和javascript中有什么函数? jquery $ .post?听说它只能访问本地主机。

你指的是Same Origin Policy。有ways around it,但是如果你想直接从JavaScript获取XML,例如客户端,那么PHP的部分是什么,为什么不取代webservice data as JSON呢?

告诉我们更多关于你打算如何使用API​​以及访问者应该如何在你的页面上与它进行交互的信息。另外,关于数据库中ID的部分有点模糊。

编辑

如果你只是想在数据进入数据库,考虑downloading the dump file from geonames.org并将其导入到本地数据库:

每日地名数据库转储可以在形式下载一个大型的全球文本文件(allCountries.zip)。其他国家/地区文件可用于方便。你在我们的下载服务器上找到这些文件。有关详细信息,请阅读readme.txt。 邮政编码可单独下载。

+0

基本上我只想把层次结构数据存入我的数据库。所以这不是针对用户的,只是为了完成我的数据库数据。所以我可以用PHP来做到这一点?不知道为什么我应该通过JavaScript时,流程如下所示:mysql - > php - > geonames xml - > php - > mysql。 – 2010-03-20 08:09:38

+0

@fayer是的。这就是为什么我问你为什么要使用JavaScript的原因。但是,如果你只是想要数据,获取整个转储而不是查询web服务。查看更新。 – Gordon 2010-03-20 08:15:29

+0

我有...但我不能得到转储的城市层次结构。我检查了结构和所有关系,但无法找到一种方法来获得州和县的一个城市。这就是为什么我想用它们的网页API。 – 2010-03-20 08:59:54

相关问题