IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Google Maps, Problème d'encoding dans une boucle


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [SimpleXML] Google Maps, Problème d'encoding dans une boucle
    Bonjour à tous,

    Je tente d'intégrer à mon site d'immobilier des cartes Google Maps.

    Avant de pouvoir intégrer ces éléments, je dois récupérer les coordonnées latitude et longitude par une requête http auprès de Google.

    Pour cela, je me base sur le tuto suivant http://www.developer.com/db/article.php/10920_3621981_2

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php header ('Content-Type: text/html; charset=utf-8;');
     
    	//Connexion a la base de donnees
     
    	 $connexion = mysql_connect(HOST,USER,PASSWORD)
        or die ("Connexion au serveur impossible");
       $db=mysql_select_db(DATABASE,$connexion)
        or die ("S&eacute;lection de base de donn&eacute;es impossible");
     
       // Query the table
       $query = "SELECT idproduit, adresse, Ville, code_postal FROM immobilier WHERE idproduit=4559383";
       $result = mysql_query($query) or die(mysql_error());
     
     
       // Your Google Maps API key
       $key = "ABQIAAAAQRYU3XY6ckBbvEFxLG8M3RROpmEb267vUFb_KIzNC5a4iS4IlhSHKWVfRGG-mzuPYLzPf1oGofKiMA";
     
       // Loop through each row, submit HTTP request, output coordinates
       while (list($idproduit, $adresse, $Ville, $code_postal) = mysql_fetch_row($result))
       {
     
    		  // Desired address
    	  	$mapaddress = urlencode("$adresse $code_postal $Ville France");
     
          // Desired address
          $url = "http://maps.google.com/maps/geo?q=$mapaddress&output=xml&key=$key";
     
     
          // Retrieve the URL contents
          $page = file_get_contents($url);
     
          // Parse the returned XML file
          $xml = new SimpleXMLElement($page);
     
          // Parse the coordinate string
          list($longitude, $latitude, $altitude) = explode(",", $xml->Response->Placemark->Point->coordinates);
     
          // Output the coordinates
          echo "latitude: $latitude, longitude: $longitude <br />";
     
       }
    ?>

    Ce code ne fonctionne pas et me renvoie le message d'erreur suivant :


    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xE8 0x73 0x2C 0x20 in /home/immobiliD/www/test-google-map.php5 on line 32

    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: 00</code><request>geocode</request></Status><Placemark><address>Avenue Jean Jaur in /home/immobiliD/www/test-google-map.php5 on line 32

    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in /home/immobiliD/www/test-google-map.php5 on line 32

    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/immobiliD/www/test-google-map.php5:32 Stack trace: #0 /home/immobiliD/www/test-google-map.php5(32): SimpleXMLElement->__construct('<?xml version="...') #1 {main} thrown in /home/immobiliD/www/test-google-map.php5 on line 32

    ----------------

    Impossible de trouver la solution. J'ai l'impression qu'il y a un problème avec le loop car si je requête directement avec le code suivant cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
     
       // Your Google Maps API key
       $key = "YOUR_KEY_HERE";
     
       // Desired address
       $address = "http://maps.google.com/maps/geo?q=411+Woody+Hayes+Drive,+Columbus,+OH&output=xml&key=$key";
     
       // Retrieve the URL contents
       $page = file_get_contents($address);
     
       // Parse the returned XML file
       $xml = new SimpleXMLElement($page);
     
    // Parse the coordinate string
    list($longitude, $latitude, $altitude) = explode(",", 
         $xml->Response->Placemark->Point->coordinates);
     
    // Output the coordinates
    echo "Longitude: $longitude, Latitude: $latitude";
    Si vous avez une piste, Merci d'avance.

    Yahn

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    mars 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est résolu. Il suffit d'encoder en utf8 la variable page avant de la parser avec simpleXMLelement !

    > $page=utf8_encode($page);

    Voilou.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Google Maps + Java] Afficher GoogleMap dans une JFrame
    Par imenisg dans le forum SIG : Système d'information Géographique
    Réponses: 6
    Dernier message: 19/04/2010, 01h54
  2. Réponses: 2
    Dernier message: 28/08/2006, 14h16
  3. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 18h42
  4. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 19h07
  5. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo