Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] unserialize
ayeo
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Witam!
Php jakos dziwnie serializuje zmienne sesji (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Wygląda to mniej więcej tak:
pass|s:6:"dupsko";word|s:7:"halinka";Kazimierz|i:3;
i jest odporne na unserialize...
Jakiś sprytny patent na przerobienie tego na tablice?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ayeo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Dzięki za dobre rady Panowie.

@nevt
Chodzi o handler sesji i o wartość przekazywaną do metody _write().

@grzesiek_g
To przykładowy string tylko, trzymajmy się tematu :)

Znalazłem coś takiego:
  1. <?php
  2. $pattern = '/(.*?)|(.*?\";)/';
  3. preg_match_all( $pattern , $data, $match );
  4. $keys = &$match[1];
  5. $vals = &$match[2];
  6. $return = array();
  7. foreach( $keys as $key => $val )
  8. `{
  9. $return[$val] = unserialize( $vals[$key] );
  10. }
  11. print_r($return);
  12. ?>


w wyniku daje:

Array (
[pass] => dupsko
[word] => halinka )

Problem jest tylko z wartosciami liczbowymi. Jak przerobić ten $pattern?? :)

EDIT
Dobra jest ok.
Zmodyfikowałem troche $pattern:
[php]
$pattern = '/(.*?)\|((.*?\";)|(.*? ;) )/';
[php]
PS. forum wycina backshlase więc jednego brakuje przed |
Pozdrawiam !

Ten post edytował ayeo 5.12.2007, 13:29:49
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 19:50