Problem mit PHP::Serialization::unserialize

28/10/2008 - 06:30 von Jan Conrads | Report spam
Hallo NG,

vorweg ich bin ein Perl Anfànger und kenne noch nicht alle Kniffe.

Momentan bin ich dabei, einen Foren Datenbank Konverter zu schreiben
(die Foren Entwickler sind wohl vor ihrem eigenem Code geflüchtet, ist
absolut unsicher und buggy, die Anbieterseite ging kommentarlos down)


Nun werden bei PHP wohl gerne Variablen seriell gespeichert, bei mir in
einer MYSQL Datenbank.

Um auch die Umfragen übernehmen zu können muß ich leider mit einem
solchen Format arbeiten.


Mit PHP::Serialization::unserialize sollte sich das Teil eigentlich
problemlos zerlegen lassen.

(Beispiel aus der DB ( Kollation latin1) ohne Umbrüche)

a:6:{s:5:"title";s:67:"Was werdet/würdet ihr bei der Kommunalwahl am 26.
September
wàhlen?";s:14:"multiple_votes";i:0;s:7:"endtime";i:1096214400;s:8:"authorid";
s:1:"2";s:4:"data";a:9:{i:1;a:2:{s:2:"an";s:3:"CDU";s:2:"vo";i:3;}i:2;a:2:
{s:2:"an";s:3:"FDP";s:2:"vo";i:2;}i:3;a:2:{s:2:"an";s:5:"Grüne";s:2:"vo";i:4;}i:4;a:2:
{s:2:"an";s:3:"PDS";s:2:"vo";i:1;}i:5;a:2:{s:2:"an";s:3:"SPD";s:2:"vo";
i:3;}i:6;a:2:{s:2:"an";s:37:"Eine lokale Liste/
Wàhlergemeinschaft";s:2:"vo";i:0;}i:7;a:2:{s:2:"an";s:35:"Sonstige (wer
mag, darf es angeben)";s:2:"vo";i:0;}i:8;a:2:{s:2:"an";s:10:"Gar
nichts";s:2:"vo";i:0;}i:9;a:2:{s:2:"an";s:10:"Weiß
nicht";s:2:"vo";i:0;}}s:7:"userids";s:34:"21,34,10,2,41,49,4,1,29,36,26,9,57";}



Allerdings bekomme ich das innere array (sollte bei data beginnen) nicht
sauber zerlegt. Solange keine Sonderzeichen auftauchen gehts, aber bei
"Grüne" ist das Ergebnis "Gr". Evt stören auch nur Umlaute im ersten
Wort, die Wàhlergemeinschaft wird korrekt ausgegeben.


Ich hab eigentlich keine Lust das Ding von Hand zu zerlegen, der Rest
der DB macht schon genug Stress.


Gru0 Jan Conrads

Habt ihr evt eine Idee, wie ich das in den Griff bekomme?
 

Lesen sie die antworten

#1 Frank Seitz
28/10/2008 - 14:31 | Warnen spam
Jan Conrads wrote:

Habt ihr evt eine Idee, wie ich das in den Griff bekomme?



Ich selbst kenne das Modul nicht, habe nur kurz auf CPAN reingeschaut.
Es scheint nicht viel Code dahinter zu stehen. Schau dir
mal an, was die Methode _parse() macht und die Methoden, die
_parse() ruft.

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen