Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] xlm in php-Variablen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] xlm in php-Variablen

    Ich hole mir von Google Maps die Koordinaten anhand einer Adresse.
    Leider funktioniert der Code nicht. Es kommt die Fehlermeldung:
    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: Entity: line 1: parser error : Start tag expected, '<' not found in D:\php\... on line 17

    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: { in D:\php\... on line 17

    Warning: SimpleXMLElement::__construct() [function.SimpleXMLElement---construct]: ^ in D:\php\... on line 17

    Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\php\reinicke\admin\test.php:17 Stack trace: #0 D:\php\...(17): SimpleXMLElement->__construct('{? "name": "Ge...') #1 {main} thrown in D:\php\... on line 17



    PHP-Code:
        // Angabe deines Google Api Keys
        
    $key ="ABC";
         
        
    //Angabe der Adresse, von der die Koordinaten geholt werden sollen
        
    $adresse="http://maps.google.com/maps/geo?q=Germany+".$_POST["plz"]."+".$_POST["ort"]."+".$_POST["anschrift"]."+".$_POST["hausnummer"]."&amp;output=xml&amp;key=$key";
         
        
    //XML File von google holen
        
    $urlinhalt=file_get_contents($adresse);
        
    //XML File utf8 konvertieren
        
    $urlinhalt utf8_decode ($urlinhalt);
        
    print_r($urlinhalt);
        
    /*
        //SimpleXMLElement Objekt erstellen
        $xml = new SimpleXMLElement($urlinhalt);
         
        //Koordinaten auslesen - trennen - und in 2 variablen speichern
        list($longitude, $latitude, $altitude) = explode (",",$xml->Response->Placemark->Point->coordinates);
         
        //Koordinaten ausgeben
        echo "Longitude: $longitude, Latitude: $latitude"; 
    Wenn ich mit print_r($urlinhalt) abfrage bekomme ich zB sowas:

    { "name": "Germany 71640 Ludwigsburg Corneliusstrasse 31", "Status": { "code": 200, "request": "geocode" }, "Placemark": [ { "id": "p1", "address": "Corneliusstra? 31, 71640 Ludwigsburg, Germany", "AddressDetails": {"Country": {"CountryNameCode": "DE","CountryName": "Germany","AdministrativeArea": {"AdministrativeAreaName": "Baden-W?emberg","SubAdministrativeArea": {"SubAdministrativeAreaName": "Ludwigsburg","Locality": {"LocalityName": "Ludwigsburg","Thoroughfare":{"ThoroughfareNam e": "Corneliusstra? 31"},"PostalCode": {"PostalCodeNumber": "71640"}}}}},"Accuracy": 8}, "Point": { "coordinates": [ 9.2164575, 48.9002927, 0 ] } } ] }

    Wie bekomme ich daraus die Koordinaten?

    Vielen Dank

  • #2
    Ähh hast du schonmal ein XML-File gesehen? Also so sieht das nich aus...

    Kommentar


    • #3
      Das sieht nach JSON aus.
      siehe JSON
      und [man]json_decode[/man]

      Kommentar


      • #4
        json_decode

        Vielen Dank
        Mit json_decode bekomme ich schon etwas, das wie ein Array aussieht.
        Nur kann ich nicht auf die Variablen zugreifen
        Wie kann ich die Ebenen "stdClass Object" abfragen?

        Vielen Dank

        PHP-Code:
        stdClass Object
        (
            [
        name] => Germany 71640 Ludwigsburg Corneliusstrasse 31
            
        [Status] => stdClass Object
                
        (
                    [
        code] => 200
                    
        [request] => geocode
                
        )

            [
        Placemark] => Array
                (
                    [
        0] => stdClass Object
                        
        (
                            [
        id] => p1
                            
        [address] => Corneliusstra3171640 LudwigsburgGermany
                            
        [AddressDetails] => stdClass Object
                                
        (
                                    [
        Country] => stdClass Object
                                        
        (
                                            [
        CountryNameCode] => DE
                                            
        [CountryName] => Germany
                                            
        [AdministrativeArea] => stdClass Object
                                                
        (
                                                    [
        AdministrativeAreaName] => Baden-W?emberg
                                                    
        [SubAdministrativeArea] => stdClass Object
                                                        
        (
                                                            [
        SubAdministrativeAreaName] => Ludwigsburg
                                                            
        [Locality] => stdClass Object
                                                                
        (
                                                                    [
        LocalityName] => Ludwigsburg
                                                                    
        [Thoroughfare] => stdClass Object
                                                                        
        (
                                                                            [
        ThoroughfareName] => Corneliusstra31
                                                                        
        )

                                                                    [
        PostalCode] => stdClass Object
                                                                        
        (
                                                                            [
        PostalCodeNumber] => 71640
                                                                        
        )

                                                                )

                                                        )

                                                )

                                        )

                                    [
        Accuracy] => 8
                                
        )

                            [
        Point] => stdClass Object
                                
        (
                                    [
        coordinates] => Array
                                        (
                                            [
        0] => 9.2164575
                                            
        [1] => 48.9002927
                                            
        [2] => 0
                                        
        )

                                )

                        )

                )


        Kommentar


        • #5
          Na das ist halt nen Object mit Eigenschaften wäre übrigens bei SimpleXML auch nichts anderes gewesen, wenn du ihm XML zu fressen gegeben hättest

          PHP-Code:
          echo $object->name;
          echo 
          $object->status->code

          Kommentar


          • #6
            Du kannst Dir auch ein Feld statt stdClass liefern lassen.
            Wie das geht, steht auch auf der schon genannten Doku-Seite.

            Kommentar


            • #7
              Tausend Dank

              Habe das True angefügt.

              Tausend Dank an euch.

              Kommentar

              Lädt...
              X