Fabian Transchel: serialize will (manchmal) nicht...

Beitrag lesen

Hallo Forum,

ich habe ein Problem mit meinem Debian-Apachen (einmal Apache 1.3.20 mit PHP 4.1.2 und einmal Apache 2.0.x mit PHP 4.3),
er weigert sich beharrlich, mehrdimensional serialisierte Arrays wieder zu deserialisieren. Um das zu verdeutlichen das Testscript, was es bei mir nicht tut:

<schnipp>

<?php
$fp = fopen("homepage/guestbook.gb","r");
$daten = fread($fp,filesize("homepage/guestbook.gb"));
#echo($daten); //Bishier hin stimmt alles, die Datne werden richtig eingelesen, und sind korrekt. Unterm Win-Apachen wird genau dieser String auch unserialisiert, hier nicht...

echo("<br><br><br><pre>");
$guestdaten = unserialize($daten);
echo $guestdaten; //hier müsste "array" ausgegeben werden, wird aber nicht. Auch print_r() schweigt sich aus.
echo("</pre>");

$string = "daten, daten, daten";
$ergeb = serialize($string);
echo $ergeb;  //Geht.
$daten = unserialize($ergeb);
echo $daten; //Hier Funktioniert alles, das wird richtig serialisiert und auch wieder unserialisiert. Ist aber auch nur ein String, obwohl ich mich frage, was es damit zu tun hat...
?>
<hr>
<?php
$arrayeins[] = "1";
$arrayeins[] = "depp";
$arrayeins[] = "quark";
$arrayeins[] = "suppe";
$arrayeins[] = "serialize!"; //Ich erzeuge ein primitives, _ein_dimensionales Array.
$arr = serialize($arrayeins);
echo $arr; //Geht.
?>
<hr>
<?php
print_r(unserialize($arr)); //Geht auch.
?>

</schnapp>

Könnte es daran liegen, dass Windows und Linux verschiedene Zeilenenden verwenden? Ich greife hier auf Daten auf einer Winpartition zu.

Fabian