簡體   English   中英

在php中從url獲取查詢

[英]Get a query from url in php

我不知道如何在PHP中這樣做。 我試圖從openstreetmap.org獲取地理編碼數據,但我需要在php中執行此操作。

在Javascript(我有這個工作),它是:

<script type="text/javascript"
    src="http://nominatim.openstreetmap.org/reverse?format=xml&lat=43.642018&lon=-79.374671">
</script>

我有那個網址,但我不知道如何在PHP中執行它。

我努力了:

<?php
    $url = "http://nominatim.openstreetmap.org/reverse?format=xml&lat=43.642018&lon=-79.374671";
    $response = file_get_contents($url);
?>

但這不起作用。 我用curl嘗試了同樣的方法。 任何想法或這種類型的查詢不可能在PHP?

用這個;

 $xml = simplexml_load_file("http://nominatim.openstreetmap.org/reverse?format=xml&lat=43.642018&lon=-79.374671");
 print_r($xml);

它會返回一組值,見下文;

 SimpleXMLElement Object
 (
     [@attributes] => Array
         (
            [timestamp] => Thu, 22 Mar 12 18:31:11 +0000
            [attribution] => Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.
            [querystring] => format=xml&lat=43.642018&lon=-79.374671
         )

[result] => 1, Yonge Street, Corktown, Toronto, Ontario, M5B2H1, Canada
[addressparts] => SimpleXMLElement Object
    (
        [house_number] => 1
        [road] => Yonge Street
        [suburb] => Corktown
        [city] => Toronto
        [county] => Toronto
        [state] => Ontario
        [postcode] => M5B2H1
        [country] => Canada
        [country_code] => ca
    )

 )

然后操縱您認為合適的數據。

它確實回來了

<?xml version="1.0" encoding="UTF-8" ?>
<reversegeocode timestamp='Thu, 22 Mar 12 18:07:13 +0000' attribution='Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.' querystring='format=xml&amp;lat=100&amp;Lon=100'>
<error>Unable to geocode</error></reversegeocode>

這只是意味着該特定坐標沒有地址..但這有http://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=100

如果您需要更多詳細信息,請閱讀API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM