Mailinglisten-Archive |
Hallo !
Danke für die Info. Auf php.net -> unserialize gibt es in den Kommentaren ein
Lösungsvorschlag,
den ich übernommen habe.
-----------------------
function unserializesession( $data ){
if( strlen( $data) == 0)
return array();
// match all the session keys and offsets
preg_match_all('/(^|;|\})([a-zA-Z0-9_]+)\|/i', $data, $matchesarray,
PREG_OFFSET_CAPTURE);
$returnArray = array();
$lastOffset = null;
$currentKey = '';
foreach ( $matchesarray[2] as $value ){
$offset = $value[1];
if(!is_null( $lastOffset))
{
$valueText = substr($data, $lastOffset, $offset - $lastOffset );
$returnArray[$currentKey] = unserialize($valueText);
}
$currentKey = $value[0];
$lastOffset = $offset + strlen( $currentKey )+1;
}
$valueText = substr($data, $lastOffset );
$returnArray[$currentKey] = unserialize($valueText);
return $returnArray;
}
-------------------------------
Klappt prima.
Mit freundlichen Grüßen
Stephan
Robert Hartung <r.hartung at roberthartung.de> hat am 14. November 2011 um 14:09
geschrieben:
> Du kannst dir auch nen Parser in wenigel Zeilen schreiben da ein regex mM
> nicht die Komplexität handeln kann.
>
> Einfach zeichen für Zeichen abarbeiten.
>
> Sessions sind doch eh temporär wieso also nich einfach umstellen?
>
> Von meinem iPhone gesendet
>
> Am 14.11.2011 um 14:05 schrieb Stephan <info at suppenterrine.de>:
>
> > Hallo !
> >
> > Danke für die Info. Leider kann ich die Struktur nicht mehr ändern.
> > Ich muss wohl eine eigene Funktion schreiben.
> > Irgend etwas mit einer RegExp.
> >
> > Gruß Stephan
> >
> >
> >
> > Robert Hartung <r.hartung at roberthartung.de> hat am 14. November 2011 um
> > 10:53
> > geschrieben:
> >
> >> Hallo,
> >>
> >> phpSession verwenden eine andere Funktion als die, die von serialize() bzw.
> >> unserialize() verwendet werden. Daher würde ich dir raten, das entweder
> >> sein
> >> zu lassen, oder die Session Funktionen selber zu schreiben.
> >>
> >> VG
> >> Robert
> >>
> >> -----Ursprüngliche Nachricht-----
> >> Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von
> >> Stephan
> >> Gesendet: Montag, 14. November 2011 10:46
> >> An: php at phpbar.de
> >> Betreff: [php] deserialization Session aus Datenbank
> >>
> >>
> >> Hallo !
> >>
> >> Momentan habe ich ein Problem:
> >> Ich speichere die Session in einer Datenbank.
> >> Bsp.:
> >>
> >> --------------------------
> >>
> >>translate|a:4:{s:6:"module";s:5:"admin";s:10:"controller";s:10:"whiteboard"
> >> ;s:6:"action";s:5:"index";s:8:"language";s:2:"de";}
> >> ...
> >> --------------------------
> >>
> >> Zu Kontrollzwecken will ich mir den Inhalt der Session mit einem
> >> simplen Tool anzeigen lassen.
> >>
> >> Hat Php wirklich keine geeignete Funktion um den Session Inhalt (siehe
> >> Beispiel)
> >> in ein Array zu wandeln ???
> >>
> >> Mit freundlichen Grüßen
> >>
> >> Stephan
> >> --
> >> ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> >> Informationen: http://www.phpbar.de
> >> http://lists.phpbar.de/mailman/listinfo/php
> >>
> >> -----
> >> eMail ist virenfrei.
> >> Von AVG überprüft - www.avg.de
> >> Version: 10.0.1411 / Virendatenbank: 2092/4015 - Ausgabedatum: 13.11.2011
> >>
> >> --
> >> ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> >> Informationen: http://www.phpbar.de
> >> http://lists.phpbar.de/mailman/listinfo/php
> >>
> > --
> > ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> > Informationen: http://www.phpbar.de
> > http://lists.phpbar.de/mailman/listinfo/php
> --
> ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de **
> Informationen: http://www.phpbar.de
> http://lists.phpbar.de/mailman/listinfo/php
>
php::bar PHP Wiki - Listenarchive