Bert: Deserialisierung von Array, das ein Webservice liefert

Hallo,

versuche gerade, den Webservice von eKomi zur Ermittlung des aktuellen Scores (Bewertung durch die User) anzubinden und habe jetzt noch konkret das Problem, dass die gelieferten Daten nicht korrekt deserialisiert werden können.

Der Aufruf des eKomi-Webservice sieht folgendermaßen aus, wobei ich lediglich mal das Passwort abgeändert habe:

  
	$soap	= new SoapClient('http://api.ekomi.de/v2/wsdl', array('soap\_version' => SOAP\_1\_2, 'trace' => 1, 'encoding'=>'UTF-8'));  
	$data = $soap->getSnapshot('5802|xxxxxxxxxxxxx', 'cust-3.0.0');  
  

Funktioniert bis hierher grundsätzlich mal.

Beim Versuch folgender Deserialisierung von

$data

wird in beiden Fällen

"cannot unserialize"

geliefert:

  
if ( ! $data\_unserialized = unserialize( stripslashes( $data ) ) ) { echo 'cannot unserialize'; }  
  
if ( ! $data\_unserialized = unserialize( stripslashes( $data ) ) ) { echo 'cannot unserialize'; }  
  

Gebe ich $data mal mit folgendem Code aus:

  
echo "Inhalt von data:<br><br>"; var\_dump( $data );  
  

bekomme ich:

  
Inhalt von data:  
  
string(3800) "a:4:{s:4:"info";a:11:{s:12:"account\_name";s:15:"Immoticket24.de";s:17:"ekomi\_certificate";s:41:"https://www.ekomi.de/cert/6R65WJE7WW5HT3E";s:20:"ekomi\_certificate\_id";s:15:"6R65WJE7WW5HT3E";s:21:"ekomi\_certificate\_seo";s:52:"https://www.ekomi.de/bewertungen-immoticket24de.html";s:8:"fb\_count";s:3:"410";s:6:"fb\_avg";s:3:"4.8";s:13:"fb\_avg\_detail";s:6:"4.7951";s:11:"fb\_avg\_room";d:0;s:14:"fb\_avg\_service";d:0;s:15:"fb\_avg\_catering";d:0;s:15:"fb\_avg\_ambience";d:0;}s:9:"feedbacks";a:10:{i:0;a:9:{s:14:"transaction\_id";s:9:"R-001.462";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:132:"Alles bestens, einfache Anwendung, gute Info über die einzelnen Schritte. Veröffentlichungen über verschiedene Quellen sehr zeitnah.";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 16:34:58";}i:1;a:9:{s:14:"transaction\_id";s:9:"R-001.211";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:108:"sehr gutes Preis- / Leistungsverhältnis bei einem einwandfreien persönlichen Kundenservice. Jederzeit wieder";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 08:56:51";}i:2;a:9:{s:14:"transaction\_id";s:9:"R-001.465";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:51:"Perfekter persönlicher Service. Besser gehts nicht!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:24:41";}i:3;a:9:{s:14:"transaction\_id";s:9:"R-001.466";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:134:"Ich wurde umgehend persönlich kontaktiert und meine Buchungswünsche wurden perfekt umgesetzt. Bei dem Preis ein unschlagbares Angebot!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:23:47";}i:4;a:9:{s:14:"transaction\_id";s:9:"R-001.445";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:135:"Wirklich nicht mehr zu verbessern; weiter so. Habe die Empfehlung von meinem Schwiegervater bekommen (BJ 44). Kann es kaum glauben. ;-)";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-06 08:57:33";}i:5;a:9:{s:14:"transaction\_id";s:9:"R-001.442";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:57:"Tolle Idee, toller Kundenservice, absolut empfehlenswert!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-05 09:54:21";}i:6;a:9:{s:14:"transaction\_id";s:9:"R-001.440";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:45";}i:7;a:9:{s:14:"transaction\_id";s:9:"R-001.441";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:26";}i:8;a:9:{s:14:"transaction\_id";s:9:"R-001.428";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:26";}i:9;a:9:{s:14:"transaction\_id";s:9:"R-001.429";s:6:"rating";s:1:"5";s:11:"rating\_room";N;s:14:"rating\_service";N;s:15:"rating\_catering";N;s:15:"rating\_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:02";}}s:4:"done";i:1;s:7:"done\_at";i:1342258698;}"  
  

Warum können die Daten nicht deserialisiert werden?

Gruß Bert

  1. hi,

    
    <?php
    $test = unserialize('a:4:{s:4:"info";a:11:{s:12:"account_name";s:15:"Immoticket24.de";s:17:"ekomi_certificate";s:41:"https://www.ekomi.de/cert/6R65WJE7WW5HT3E";s:20:"ekomi_certificate_id";s:15:"6R65WJE7WW5HT3E";s:21:"ekomi_certificate_seo";s:52:"https://www.ekomi.de/bewertungen-immoticket24de.html";s:8:"fb_count";s:3:"410";s:6:"fb_avg";s:3:"4.8";s:13:"fb_avg_detail";s:6:"4.7951";s:11:"fb_avg_room";d:0;s:14:"fb_avg_service";d:0;s:15:"fb_avg_catering";d:0;s:15:"fb_avg_ambience";d:0;}s:9:"feedbacks";a:10:{i:0;a:9:{s:14:"transaction_id";s:9:"R-001.462";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:132:"Alles bestens, einfache Anwendung, gute Info über die einzelnen Schritte. Veröffentlichungen über verschiedene Quellen sehr zeitnah.";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 16:34:58";}i:1;a:9:{s:14:"transaction_id";s:9:"R-001.211";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:108:"sehr gutes Preis- / Leistungsverhältnis bei einem einwandfreien persönlichen Kundenservice. Jederzeit wieder";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 08:56:51";}i:2;a:9:{s:14:"transaction_id";s:9:"R-001.465";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:51:"Perfekter persönlicher Service. Besser gehts nicht!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:24:41";}i:3;a:9:{s:14:"transaction_id";s:9:"R-001.466";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:134:"Ich wurde umgehend persönlich kontaktiert und meine Buchungswünsche wurden perfekt umgesetzt. Bei dem Preis ein unschlagbares Angebot!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:23:47";}i:4;a:9:{s:14:"transaction_id";s:9:"R-001.445";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:135:"Wirklich nicht mehr zu verbessern; weiter so. Habe die Empfehlung von meinem Schwiegervater bekommen (BJ 44). Kann es kaum glauben. ;-)";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-06 08:57:33";}i:5;a:9:{s:14:"transaction_id";s:9:"R-001.442";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:57:"Tolle Idee, toller Kundenservice, absolut empfehlenswert!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-05 09:54:21";}i:6;a:9:{s:14:"transaction_id";s:9:"R-001.440";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:45";}i:7;a:9:{s:14:"transaction_id";s:9:"R-001.441";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:26";}i:8;a:9:{s:14:"transaction_id";s:9:"R-001.428";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:26";}i:9;a:9:{s:14:"transaction_id";s:9:"R-001.429";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:02";}}s:4:"done";i:1;s:7:"done_at";i:1342258698;}');
    var_dump($test);
    
    

    Ausgabe: array(4) {   ["info"]=>   array(11) {     ["account_name"]=>     string(15) "Immoticket24.de"     ["ekomi_certificate"]=>     string(41) "https://www.ekomi.de/cert/6R65WJE7WW5HT3E"     ["ekomi_certificate_id"]=>     string(15) "6R65WJE7WW5HT3E"     ["ekomi_certificate_seo"]=>     string(52) "https://www.ekomi.de/bewertungen-immoticket24de.html"     ["fb_count"]=>     string(3) "410"     ["fb_avg"]=>     string(3) "4.8"     ["fb_avg_detail"]=>     string(6) "4.7951"     ["fb_avg_room"]=>     float(0)     ["fb_avg_service"]=>     float(0)     ["fb_avg_catering"]=>     float(0)     ["fb_avg_ambience"]=>     float(0)   }   ["feedbacks"]=>   array(10) {     [0]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.462"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(132) "Alles bestens, einfache Anwendung, gute Info über die einzelnen Schritte. Veröffentlichungen über verschiedene Quellen sehr zeitnah."       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-12 16:34:58"     }     [1]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.211"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(108) "sehr gutes Preis- / Leistungsverhältnis bei einem einwandfreien persönlichen Kundenservice. Jederzeit wieder"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-12 08:56:51"     }     [2]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.465"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(51) "Perfekter persönlicher Service. Besser gehts nicht!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-09 18:24:41"     }     [3]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.466"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(134) "Ich wurde umgehend persönlich kontaktiert und meine Buchungswünsche wurden perfekt umgesetzt. Bei dem Preis ein unschlagbares Angebot!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-09 18:23:47"     }     [4]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.445"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(135) "Wirklich nicht mehr zu verbessern; weiter so. Habe die Empfehlung von meinem Schwiegervater bekommen (BJ 44). Kann es kaum glauben. ;-)"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-06 08:57:33"     }     [5]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.442"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(57) "Tolle Idee, toller Kundenservice, absolut empfehlenswert!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-05 09:54:21"     }     [6]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.440"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(36) "Schnelle, professionelle Abwicklung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-03 14:24:45"     }     [7]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.441"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(36) "Schnelle, professionelle Abwicklung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-03 14:24:26"     }     [8]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.428"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(34) "Schnelle professionelle Umsetzung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-06-28 08:00:26"     }     [9]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.429"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(34) "Schnelle professionelle Umsetzung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-06-28 08:00:02"     }   }   ["done"]=>   int(1)   ["done_at"]=>   int(1342258698) }

    Der String ist also o.k. und unserializeable.

    mfg

    tami

    1. Hello,

      $test = unserialize('[...]');
      Der String ist also o.k. und unserializeable.

      Ja. Und warum hat Bert überhaupt stripslashes() benutzt?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. hi,

        Hello,

        $test = unserialize('[...]');
        Der String ist also o.k. und unserializeable.

        Ja. Und warum hat Bert überhaupt stripslashes() benutzt?

        Du meinst meine Glaskugel oder habe ich was missverstanden?

        mfg

        tami

        1. Hello,

          $test = unserialize('[...]');
          Der String ist also o.k. und unserializeable.

          Ja. Und warum hat Bert überhaupt stripslashes() benutzt?

          Du meinst meine Glaskugel oder habe ich was missverstanden?

          Genau. Die Glaskugel. Oder gibt's inzwischen schon neuere Erfindungen, mit denen man die Geheimnisse aus Postings herauslesen kann?

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
    2. Hallo, wenn ich das erste und letzte doppelte Anführungszeichen durch einfache ersetze und den String mal direkt deserialisiere (s. Beispiel von tami eben), klappt es auch, nicht aber, wenn ich versuche, den String zu deserialisieren. Also liegt es wohl daran. Mit welcher PHP-Funktion muss der String

      $data

      vor der Deserialisierung noch behandelt werden, damit es auch geht, wenn ich die Daten (die sich ja ständig ändern) nicht hart kodiert im Skript ablege? ;)

      (Und das mit den beiden stripslash-Zeilen war ein Versehen beim Kopieren, hab es natürlich vor allem auch ohne probiert...)

      
      
      > <?php
      > $test = unserialize('a:4:{s:4:"info";a:11:{s:12:"account_name";s:15:"Immoticket24.de";s:17:"ekomi_certificate";s:41:"https://www.ekomi.de/cert/6R65WJE7WW5HT3E";s:20:"ekomi_certificate_id";s:15:"6R65WJE7WW5HT3E";s:21:"ekomi_certificate_seo";s:52:"https://www.ekomi.de/bewertungen-immoticket24de.html";s:8:"fb_count";s:3:"410";s:6:"fb_avg";s:3:"4.8";s:13:"fb_avg_detail";s:6:"4.7951";s:11:"fb_avg_room";d:0;s:14:"fb_avg_service";d:0;s:15:"fb_avg_catering";d:0;s:15:"fb_avg_ambience";d:0;}s:9:"feedbacks";a:10:{i:0;a:9:{s:14:"transaction_id";s:9:"R-001.462";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:132:"Alles bestens, einfache Anwendung, gute Info über die einzelnen Schritte. Veröffentlichungen über verschiedene Quellen sehr zeitnah.";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 16:34:58";}i:1;a:9:{s:14:"transaction_id";s:9:"R-001.211";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:108:"sehr gutes Preis- / Leistungsverhältnis bei einem einwandfreien persönlichen Kundenservice. Jederzeit wieder";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-12 08:56:51";}i:2;a:9:{s:14:"transaction_id";s:9:"R-001.465";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:51:"Perfekter persönlicher Service. Besser gehts nicht!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:24:41";}i:3;a:9:{s:14:"transaction_id";s:9:"R-001.466";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:134:"Ich wurde umgehend persönlich kontaktiert und meine Buchungswünsche wurden perfekt umgesetzt. Bei dem Preis ein unschlagbares Angebot!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-09 18:23:47";}i:4;a:9:{s:14:"transaction_id";s:9:"R-001.445";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:135:"Wirklich nicht mehr zu verbessern; weiter so. Habe die Empfehlung von meinem Schwiegervater bekommen (BJ 44). Kann es kaum glauben. ;-)";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-06 08:57:33";}i:5;a:9:{s:14:"transaction_id";s:9:"R-001.442";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:57:"Tolle Idee, toller Kundenservice, absolut empfehlenswert!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-05 09:54:21";}i:6;a:9:{s:14:"transaction_id";s:9:"R-001.440";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:45";}i:7;a:9:{s:14:"transaction_id";s:9:"R-001.441";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:36:"Schnelle, professionelle Abwicklung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-07-03 14:24:26";}i:8;a:9:{s:14:"transaction_id";s:9:"R-001.428";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:26";}i:9;a:9:{s:14:"transaction_id";s:9:"R-001.429";s:6:"rating";s:1:"5";s:11:"rating_room";N;s:14:"rating_service";N;s:15:"rating_catering";N;s:15:"rating_ambience";N;s:7:"message";s:34:"Schnelle professionelle Umsetzung!";s:7:"comment";s:0:"";s:9:"delivered";s:19:"2012-06-28 08:00:02";}}s:4:"done";i:1;s:7:"done_at";i:1342258698;}');
      > var_dump($test);
      > 
      
      

      Ausgabe: array(4) {   ["info"]=>   array(11) {     ["account_name"]=>     string(15) "Immoticket24.de"     ["ekomi_certificate"]=>     string(41) "https://www.ekomi.de/cert/6R65WJE7WW5HT3E"     ["ekomi_certificate_id"]=>     string(15) "6R65WJE7WW5HT3E"     ["ekomi_certificate_seo"]=>     string(52) "https://www.ekomi.de/bewertungen-immoticket24de.html"     ["fb_count"]=>     string(3) "410"     ["fb_avg"]=>     string(3) "4.8"     ["fb_avg_detail"]=>     string(6) "4.7951"     ["fb_avg_room"]=>     float(0)     ["fb_avg_service"]=>     float(0)     ["fb_avg_catering"]=>     float(0)     ["fb_avg_ambience"]=>     float(0)   }   ["feedbacks"]=>   array(10) {     [0]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.462"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(132) "Alles bestens, einfache Anwendung, gute Info über die einzelnen Schritte. Veröffentlichungen über verschiedene Quellen sehr zeitnah."       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-12 16:34:58"     }     [1]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.211"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(108) "sehr gutes Preis- / Leistungsverhältnis bei einem einwandfreien persönlichen Kundenservice. Jederzeit wieder"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-12 08:56:51"     }     [2]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.465"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(51) "Perfekter persönlicher Service. Besser gehts nicht!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-09 18:24:41"     }     [3]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.466"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(134) "Ich wurde umgehend persönlich kontaktiert und meine Buchungswünsche wurden perfekt umgesetzt. Bei dem Preis ein unschlagbares Angebot!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-09 18:23:47"     }     [4]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.445"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(135) "Wirklich nicht mehr zu verbessern; weiter so. Habe die Empfehlung von meinem Schwiegervater bekommen (BJ 44). Kann es kaum glauben. ;-)"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-06 08:57:33"     }     [5]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.442"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(57) "Tolle Idee, toller Kundenservice, absolut empfehlenswert!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-05 09:54:21"     }     [6]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.440"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(36) "Schnelle, professionelle Abwicklung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-03 14:24:45"     }     [7]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.441"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(36) "Schnelle, professionelle Abwicklung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-07-03 14:24:26"     }     [8]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.428"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(34) "Schnelle professionelle Umsetzung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-06-28 08:00:26"     }     [9]=>     array(9) {       ["transaction_id"]=>       string(9) "R-001.429"       ["rating"]=>       string(1) "5"       ["rating_room"]=>       NULL       ["rating_service"]=>       NULL       ["rating_catering"]=>       NULL       ["rating_ambience"]=>       NULL       ["message"]=>       string(34) "Schnelle professionelle Umsetzung!"       ["comment"]=>       string(0) ""       ["delivered"]=>       string(19) "2012-06-28 08:00:02"     }   }   ["done"]=>   int(1)   ["done_at"]=>   int(1342258698) }

      Der String ist also o.k. und unserializeable.

      mfg

      tami

      1. hi,

        mit meinen einfachen anführungszeichen habe ich aus deinem Text hier für PHP einen String gemacht.

        Was kommt denn raus, wenn du var_dump($data_unserialized) machst. Vielleicht sind deine Abbruchbedingungen nicht korrekt definiert. Dein Coding-Style macht das aber auch nicht grade übersichtlich.

        mfg

        tami

        1. Folgender Code:

            
                  $data = $soap->getSnapshot ( ' . . . ' );  
            
          	$data2 = unserialize ( $data ) ;  
          	  
          	var\_dump ( $data2 )	;  
            
          

          liefert als Output:

          bool(false)

          1. hi,

            Folgender Code:

              
                    $data = $soap->getSnapshot ( ' . . . ' );  
              
            	$data2 = unserialize ( $data ) ;  
            	  
            	var\_dump ( $data2 )	;  
              
            

            liefert als Output:

            bool(false)

            und $data ist exact der string, mit dem es in meinem Beispiel geht?

            vielleicht solltest du mal mein beispiel bzw. den string mit deinem $data vergleichen?

            mfg

            tami

            1. Hi tami, der Aufruf von

              echo $data;

              liefert den gleichen Output, wie Du ihn um die einfachen Anführungszeichen (ganz am Anfang und ganz am Ende) ergänzt direkt in die Funktion deserialize( ) eingesetzt hast.

              (Nun sind die einfachen Anführungszeichen ganz am Anfang und ganz am Ende ja aber kein Bestandteil des Strings, sondern zeigen lediglich an, dass es sich bei dem Inhalt dazwischen um einen String handelt, es bringt also auch nichts, über eine Konkatenierung welche dazuzubauen...)

              Die folgenden Beiträge gehen jeweils in eine ziemlich ähnliche Richtung und bei manchen werden sogar Lösungen gefunden, die in diesen Fällen funktionieren, in meinem Fall funktioniert das aber alles nicht:

                
              http://www.sitepoint.com/forums/showthread.php?208512-var\_dump%28-array%29-bool%28false%29  
                
              http://stackoverflow.com/questions/1072990/why-does-unserialize-in-php-keep-returning-false  
                
              http://www.sitepoint.com/forums/showthread.php?726300-unserialize-of-array-returns-bool%28false%29  
                
              http://www.administrator.de/forum/Unserialize-klappt-bei-meinem-array-nicht-143597.html  
                
              

              und $data ist exact der string, mit dem es in meinem Beispiel geht?

              vielleicht solltest du mal mein beispiel bzw. den string mit deinem $data vergleichen?

              1. hi,

                also es kann eigentlich (!) nicht sein, dass du den selben string in $data erhälst. ich würde die beiden strings einmal vergleichen:

                echo ($data_via_soap === $data_als_string_eingelesen);

                da muss ja false rauskommen, sonst könnte müsste sich $data_via_soap ja genau so deserialisieren lassen wie $data_als_string_eingelesen.

                Und ja, die einfachen Anführungsszeichen dienen allein dazu, das rückwärts wieder als String einzulesen, deshalb macht $neuerString = "'" . $data_bisher . "'"; keinen Sinn, wenn denn §data_bisher (was es ja ist) ein String ist.

                mfg

                tami

  2. Hi,

    versuche gerade, den Webservice von eKomi zur Ermittlung des aktuellen Scores (Bewertung durch die User) anzubinden und habe jetzt noch konkret das Problem, dass die gelieferten Daten nicht korrekt deserialisiert werden können.

    string(3800) "a:4:{s:4[…snip…]42258698;}"

    nur ein Schuss ins Blaue hinein.
    Kannst du mal versuchen, die Daten vor dem unserialisieren nach string zu casten (also
     $data = unserialize((string) $soap->getRequest());).

    Hintergrund: beim Arbeiten mit SimpleXML stolpere ich manchmal darüber, dass Return-values "wie strings aussehen" (insb. weil __toString überladen ist), aber eben keine strings sind. Bin mir nicht mehr ganz sicher, ob das auch beim SOAP-Modul der Fall war. Durch das casten auf string hast du das aber auf jedenfall weg.

    Bis die Tage,
    Matti

    1. hi,

      Hintergrund: beim Arbeiten mit SimpleXML stolpere ich manchmal darüber, dass Return-values "wie strings aussehen" (insb. weil __toString überladen ist), aber eben keine strings sind. Bin mir nicht mehr ganz sicher, ob das auch beim SOAP-Modul der Fall war. Durch das casten auf string hast du das aber auf jedenfall weg.

      Oder eben die Ausgabe per === mit dem String vergleichen. Dann wüsste man, ob das ein String wirklich ist ...;

      mfg

      tami