Meddelande

Minska
No announcement yet.

Längden på string varierar mellan webbläsare

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Längden på string varierar mellan webbläsare

    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 APIt ett felmeddelande som enligt mina eftersökningar oftast beror på att adressen är felformaterad:

    Kod:
    {
       "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:

    Kod:
    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:

    Kod:
    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:

    Kod:
    <?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!
    Johan Norberg, webbutvecklare.

    @GitHub

    Läs min blogg

  • #2
    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.
    Johan Norberg, webbutvecklare.

    @GitHub

    Läs min blogg

    Kommentera


    • #3
      Intressant.
      Recursion - See recursion.
      Nej, Gagnef är inte en flod i Indien.

      Kommentera


      • #4
        En teori är att det kan finnas escape-tecken med i strängen (som \n), vilka man måste rensa bort uttryckligen för att det ska fungera.

        Eventuella felskrivningar är telefonens fel!
        Kodfabriken - Webb- & apputveckling

        Kommentera


        • #5
          Geocoding apiet kan du ju lika gärna köra med php direkt? isf så slipper du eventuella differenser i webläsarna.
          roliga filmer, boka hotell, konferens, bilder, Spa

          Kommentera

          Working...
          X