php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-06-2007, 15:36
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard google maps

Hi,

ich versuche mittels maps.google.com zu adressen aus meiner datenbank die dazugehörigen koordinaten zu ermitteln. Das funktioniert auch soweit, solange ich keine Sonderzeichen wie z.B ü,ä,ß verwende. Dann bekomme ich folgenden Fehler

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

Hier ist der dazugehörige code:

$adress = array($street, $post, $city);
// Searchstring erstellen
$searchFor = implode ('+', $adress);
// Url für google maps Abfrage zusammensetzen
$key = "ABQIAAAAvTxQJ8ofNxPjKQjP5sMvlRQAWm7Akpi9GkyeD5RywzKP8hv10BQ9wPjSO9ptUs7bZ93Gxf2St9eZiQ";
$url = "http://maps.google.com/maps/geo?q=";
$url .= $searchFor;
$url .= "&output=xml&key=$key";
// Abfrage starten
$page = file_get_contents($url);
echo $page;
// Auslesen der Koordinaten von google maps
$xml = new SimpleXMLElement($page); // FEHLER MIT UTF-8 BEI UMLAUTEN WIE ü
$test = $xml->Response->Placemark->Point->coordinates;

Ich hoffe jemand kann mir helfen.
Vielen Dank

Torsten
Mit Zitat antworten
  #2 (permalink)  
Alt 27-06-2007, 16:15
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: google maps

Zitat:
Original geschrieben von Borstilein
$xml = new SimpleXMLElement($page); // FEHLER MIT UTF-8 BEI UMLAUTEN WIE ü
Dann verwendest du vermutlich kein UTF-8, sondern bildest dir nur ein, es zu tun ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 27-06-2007, 16:54
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie kann ich denn überprüfen, ob ich wirklich UTF-8 verwenden, bzw. wie kann ich sicher stellen, dass ich es verwende? bin Anfänger auf diesen Gebiet, sorry.
Mit Zitat antworten
  #4 (permalink)  
Alt 27-06-2007, 17:31
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Speichere dein XML mit einem Editor in UTF-8 kodiert ab.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 27-06-2007, 17:38
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das xml bekomme ich von google
Mit Zitat antworten
  #6 (permalink)  
Alt 27-06-2007, 17:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Borstilein
Das xml bekomme ich von google
Dann verstehe ich nicht, wo dein Problem liegt - Google liefert doch in UTF-8 kodierte Daten ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 27-06-2007, 17:51
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja richtig. Dennoch tritt bei der Funktion SimpleXMLElement ein Fehler auf, und zwar nur bei Daten mit ü,ä,ß...
Mit Zitat antworten
  #8 (permalink)  
Alt 27-06-2007, 18:01
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Problem so nicht nachvollziehbar, sorry.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 27-06-2007, 20:07
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

versuche $page explizit nach utf-8 zu kodieren, bevor du es an den konstruktor übergibst.
Mit Zitat antworten
  #10 (permalink)  
Alt 28-06-2007, 10:51
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hab es mit $page = utf8_encode($page); probiert. Der Fehler tritt jetzt nicht mehr auf, jedoch ist nun $test leer
Mit Zitat antworten
  #11 (permalink)  
Alt 28-06-2007, 11:23
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Oben wurde gesagt, Google liefert UTF-8. Wenn das stimmt, zerstörst du mit deinem erneuten utf8_encode() den String.

Lass dir $page zur Kontrolle mal ausgeben!
Mit Zitat antworten
  #12 (permalink)  
Alt 28-06-2007, 11:56
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das sieht beides mal gleicht aus, habe jetzt herausgefunden, dass $page = file_get_contents($url); schon nicht alles von der url einliest.

Auf der seite zu der url steht :
<kml>

<Response>
<name>Hauptstraße 10 91743 Unterschwaningen</name>

<Status>
<code>200</code>
<request>geocode</request>
</Status>

<Placemark id="p1">
<address>Hauptstraße 10, 91743 Unterschwaningen, Germany</address>

<AddressDetails Accuracy="8">

<Country>
<CountryNameCode>DE</CountryNameCode>

<AdministrativeArea>
<AdministrativeAreaName>Bayern</AdministrativeAreaName>

<SubAdministrativeArea>
<SubAdministrativeAreaName>Ansbach</SubAdministrativeAreaName>

<Locality>
<LocalityName>Unterschwaningen</LocalityName>

<Thoroughfare>
<ThoroughfareName>Hauptstraße 10</ThoroughfareName>
</Thoroughfare>

<PostalCode>
<PostalCodeNumber>91743</PostalCodeNumber>
</PostalCode>
</Locality>
</SubAdministrativeArea>
</AdministrativeArea>
</Country>
</AddressDetails>

<Point>
<coordinates>10.619770,49.081530,0</coordinates>
</Point>
</Placemark>
</Response>
</kml>

und nach dem Auslesen steht in $page:

<kml>

<Response>
<name>Hauptstraße 10 91743 Unterschwaningen</name>

<Status>
<code>200</code>
<request>geocode</request>
</Status>
</Response>
</kml>

Geändert von Borstilein (28-06-2007 um 12:16 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 28-06-2007, 12:11
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: google maps

Ich vermute mal, deine Inhalte von $adress sind nicht UTF-8 kodiert.

Wenn ich mir die Request-Adresse mal selber zusammenbastle, liefert mir Google für den Request-Parameter ?q=düsseldorf&... im Ergebnis-XML ein Element <name>düsseldorf</name> zurück.
Wenn ich stattdessen ?q=düsseldorf&... verwende, liefert es mir analog <name>düsseldorf</name> zurück ...

Google geht also davon aus, dass die Daten die du lieferst, in UTF-8 kodiert sind - darf es ja wohl auch, wenn du sonst keinerlei Angabe bzgl. Content-Encoding machst - und konvertiert sie deshalb selber nicht mehr; liefert dir also im Ergebnis genau das zurück, was du übergeben hast.
Wenn du jetzt aber kein UTF-8 übergeben hast, bekommst du an der Stelle auch kein UTF-8 zurück - und bei nicht als UTF-8 interpretierbaren Zeichen kracht's dann halt beim Erstellen des SimpleXML-Objektes.

Also: Mal prüfen, ob die Daten in $adress wirklich in UTF-8 vorliegen - und wenn nicht, dafür sorgen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #14 (permalink)  
Alt 28-06-2007, 12:24
Borstilein
 Newbie
Links : Onlinestatus : Borstilein ist offline
Registriert seit: Jun 2007
Beiträge: 9
Borstilein ist zur Zeit noch ein unbeschriebenes Blatt
Standard

google gibts mir richtig zurück, mein Problem ist, dass ich wie oben ergänzt bei xml die ü,ä... enthalten nicht den kompletten string in $page eingelesen bekomme. Sorry, hatte auch erst vorhin bemerkt, dass es nicht an google liegt
Mit Zitat antworten
  #15 (permalink)  
Alt 28-06-2007, 12:51
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Kannst du mal ein Beispiel geben, welche Suchdaten du in die Adresse einfügst, bzw. wie diese Adresse dann aussieht? (Nimm bitte gleich die Originaldaten, die du für das "Unterschwaningen"-Beispiel oben verwendet hast.)

Also
http://maps.google.com/maps/geo?q=was_steht_hier&output=xml&key=***


(Und bitte die Option "URLs automatisch umwandeln" beim Posten abschalten, damit die Forensoftware daran nichts verfälscht.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:56 Uhr.