Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Depuis peu j'ai un pb avec mon script phoogle pour afficher une carte google map . Tous fonctionner et depuis 1 semaine plus rien .
voila le message d'erreur.
Notice: Use of undefined constant Response - assumed 'Response' in /application/model/PhoogleMap.php on line 146
Fatal error: Cannot use string offset as an array in /application/model/PhoogleMap.php on line 146
Voila le code:
$apiURL = "http://maps.google.com/maps/geo?&output=xml&key=".$this->apiKey."&q=";
$addressData = file_get_contents($apiURL.urlencode($address));
// echo $addressData;
$results = $this->xml2array(utf8_encode($addressData));
$pointer = count($this->validPoints);
echo '<pre>'; print_r($results);
ligne 146 $essai=$results['kml'][Response]['Placemark']['Point']['coordinates'];
// echo $essai;
@$this->validPoints[$pointer]['lat']= $results['kml']['Placemark']['Point']['coordinates'];
@$this->validPoints[$pointer]['long']= $results['kml']['Placemark']['Point']['coordinates'];
$this->validPoints[$pointer]['passedAddress'] = $address;
$this->validPoints[$pointer]['htmlMessage'] = $htmlMessage;et voila l'affichage de $addressData envoyer a la fonction xml2array.
<kml xmlns="http://earth.google.com/kml/2.0"><Response>
<name>24 rue saint malo,bayeux 14400 FR</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>24 Rue Saint-Malô, 14400 Bayeux, France</address>
<AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>FR</CountryNameCode><CountryName>France</CountryName><AdministrativeArea><AdministrativeAreaName>Basse-Normandie</AdministrativeAreaName><SubAdministrativeArea><SubAdministrativeAreaName>Calvados</SubAdministrativeAreaName><Locality><LocalityName>Bayeux</LocalityName><Thoroughfare><ThoroughfareName>24 Rue Saint-Malô</ThoroughfareName></Thoroughfare><PostalCode><PostalCodeNumber>14400</PostalCodeNumber></PostalCode></Locality></SubAdministrativeArea></AdministrativeArea></Country></AddressDetails>
<Point><coordinates>-0.7048546,49.2777634,0</coordinates></Point>
</Placemark>
</Response></kml>L'affichage de $results donne ceci
Array
(
[kml] => Array
(
[Response] =>
)
)voila la fonction xml2array:
function xml2array($xml){
echo $xml;
$this->depth=-1;
$this->xml_parser = xml_parser_create();
xml_set_object($this->xml_parser, $this);
xml_parser_set_option ($this->xml_parser,XML_OPTION_CASE_FOLDING,0);//Don't put tags uppercase
xml_set_element_handler($this->xml_parser, "startElement", "endElement");
xml_set_character_data_handler($this->xml_parser,"characterData");
xml_parse($this->xml_parser,$xml,true);
xml_parser_free($this->xml_parser);
//echo '<pre>'; print_r($this->arrays[0]);
return @$this->arrays[0];
}Merci de votre aide
cordialement
Cédric
Hors ligne
Bonjour,
dans ta ligne :
$essai=$results['kml'][Response]['Placemark']['Point']['coordinates']
t'as un Response sans " autour. PHP considère que c'est une constante (au sens define("Response","toto")
et comme ta constante Response n'est pas définie il met une notice et renvoie la chaîne de caractères "Reponse" à la place de la constante.
Je soupçone que comme 2e paramètre, tu voulais mettre autre chose que la chaîne "Response"... (genre t'as oublié un $ ou une erreur du genre à se taper la tête contre un mur...)
A+, Philippe
Hors ligne
alors nom j'ai tester en modifiant le response avec des $ ou " mais il s'agit d'un script phoogle map et il est écrit ainsi , il fonctionner trés bien et la pfff plus rien , en cherchant sur le net un peu suis tombé sur un forum qui dit que google aurez modifier son flux xml ?
http://www.systemsevendesigns.com/phoogle
autre lien http://forum.arfooo.com/topic620.html
Cédric
Dernière modification par lebilien (26-11-2008 15:53:00)
Hors ligne
effectivement en suivant l'aide de l'autre forum sa fonctionne j'avais mal vu la ligne merci
Hors ligne