• Hallo zusammen,
    wie einige von euch schon wissen, versuche ich noch immer ein Script zu erstellen, das mir eine Adresse aus einer DB ausliest, diese an Google Maps schickt und sie dann geparst entgegennimmt und in einer Karte wiedergibt.


    Die ist mir auch schon teilweise gelungen. D.h. bei den meisten Adressen funktioniert folgendes Script fehlerfrei:



    Bei manchen Adressen funktioniert das allerdings gar nicht. Dort wird mir eine Seitenlange Fehlermeldung ausgegeben:
    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 92: parser error : Opening and ending tag mismatch: LocalityName line 1 and Locality in C:...
    Anfangs dachte ich dies habe etwas mit den Umlauten zu tun, kann aber nicht sein, da auch viele Adressen mit Umlauten angezeigt werden.
    Nun habe ich erfahren, dass eine mögliche Erklärung für das ganze Parserfehler beim Abarbeiten der Konstruktorfunktion der SimpleXMLElement-Klasse sein können, die durch fehlerhafter Codepage-Definitionen hervorgerufen werden.
    Kann mir jemand sagen was das ist bzw was ich an diesen ändern muss, um endlich auch die letzten Adressen fehlerfrei angezeigt zu bekommen?


  • Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 92: parser error : Opening and ending tag mismatch: LocalityName line 1 and Locality in C:...


    Liest sich eher wie ein Zeichensatzproblem - probier mal,

    PHP
    1. $adresse = urlencode(utf8_encode($adresse));

    quo errat demonstrator

  • Danke für deine Antwort, leider hat sich nur die Fehlermeldung verändert:


    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xFF 0x3F 0x73 0x74 in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 93


    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.0"><Response><name>Schlo in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 93


    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 93


    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp\htdocs\studio-check_final\studiodetails.php:93 Stack trace: #0 C:\xampp\htdocs\studio-check_final\studiodetails.php(93): SimpleXMLElement->__construct('<?xml version="...') #1 {main} thrown in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 93



    Allerdings habe ich bei mir alles auf utf-8 gestellt, verstehe also nicht warum das ganze überhaupt decodiert werden muss...

  • Dann kommt folgende Fehlermeldung:


    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xDF 0x65 0x20 0x33 in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 95
    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp\htdocs\studio-check_final\studiodetails.php:95 Stack trace: #0 C:\xampp\htdocs\studio-check_final\studiodetails.php(95): SimpleXMLElement->__construct('<?xml version="...') #1 {main} thrown in C:\xampp\htdocs\studio-check_final\studiodetails.php on line 95

  • Die Fehlermeldung ist doch absolut eindeutig:

    PHP
    1. Input is not proper UTF-8


    Google erwartet hier UTF-8 kodierte Strings, Du lieferst aber etwas anderes.
    Sorge dafür, dass Google, wie angekündigt auch utf8 bekommt oder deklariere das XML-Dokument entsprechend dem Zeichensatz, in dem es erstelllt ist (ISO-8859-1 ?). Das ist alles.