Jag har ingen aning om varför, men när jag refakturerade koden och körde filter_var($str, FILTER_SANITIZE_STRING) så blev plötsligt urlen godkänd och returnerade ett resultatset. Hmm.
Suttit ett tag nu med följande problem. Har ett PHP-script som tar emot en string i en $_GET-variabel, en adress, och ska passa den till Google Maps Geocoding API för att hämta koordinater.
Så långt inget konstigt! Funkar ypperligt i uppdaterad Firefox, Safari, Chrome, men när jag kommer till IE (just nu testar jag version 9) så ger Google Maps API:et ett felmeddelande som enligt mina eftersökningar oftast beror på att adressen är felformaterad:
{
"results" : [],
"status" : "INVALID_REQUEST"
}
Så för att försöka hitta problemet outputtar jag med var_dump() min adress (i sammanslagen sträng) och får följande resultat:
string(100) "http://maps.googleapis.com/maps/api/geocode/json?address=Sveavägen,+Stockholm,+Sverige&sensor=false"
I IE9 får jag däremot liiiite annorlunda svar:
string(99) "http://maps.googleapis.com/maps/api/geocode/json?address=Sveavägen,+Stockholm,+Sverige&sensor=false"
Hur kan det komma sig att samma sträng har olika "längd"? Filens kodning (i editorn) är inställd på UTF-8 som standard. I filens header-funktion är UTF-8 också inställt som charset:
<?php
header('Content-type: application/json; charset=utf-8');
header('HTTP/1.1 200 OK');
// $response är en array med data, från file_get_contents() på url
echo json_encode($response);
?>
Jag misstänker starkt att det har något att göra med ÅÄÖ eftersom det funkar med adresser utan dessa tecken! ;)
