2013-10-30 229 views
3

我正在嘗試爲我的數據庫反轉地理編碼一堆地址。我有大約200個地址,其中一半工作像一個魅力..我沒有把谷歌地圖請求在一個循環,它的工作。有大約100個地址返回了「無效請求」消息。我回應請求url並將其放入瀏覽器中,並返回「Status:OK」和所有數據。爲什麼我的腳本返回無效請求,另一個瀏覽器 - 選項卡返回OK?Google Maps API在有效請求中返回「無效請求」

,這是我使用的功能:

function getLatLon($strasse, $plz) { 
    $inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?address='.$strasse.',+'.$plz.'&sensor=true'); 

    $geo['lat'] = $inhalt->result->geometry->location->lat; 
    $geo['lon'] = $inhalt->result->geometry->location->lng; 

    return $geo; 
} 

中明確看起來請求URL是這樣的: http://maps.googleapis.com/maps/api/geocode/xml?address=Dreik%C3%B6nigstra%C3%9Fe+12,+Erlangen&sensor=true

將是真棒,如果有人可以幫助我,或檢測到錯誤:) 問候, 菲律賓

+0

檢查$ Strasse和$ PLZ是有效的輸入對於那些不工作(試戴比較那些做),這是最有可能的,如果它的問題一些時間工作。 – OMGtechy

+0

嗨,是的,我認爲,但即使與消除空間和特殊字符theres沒有變化:( –

回答

3

我很確定這個錯誤是由你發送的德文字符未編碼引起的。當您通過瀏覽器執行該操作時,URL將被自動編碼,但不會由您的PHP腳本自動編碼。

使用rawurlencode此:

$inhalt = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?'. 
           'address='.rawurlencode($strasse).',+'. 
           rawurlencode($plz).'&sensor=true'); 
+0

嗨,你寫這個我嗨得到它的工作,但你是對的我發送unncoded字符串和PHP無法取代任何特殊字符在將所有內容放在utf-8上之後都可以工作,謝謝! –