chernomyrdin
Новичок
Проблема PHP4 vs PHP5 функции serialize/unzerialize
День добрый,
Достался проект написанный на PHP4 (4.4.8), все это крутится под FreeBSD 6.2 + Mysql 5.0.41 + Apache 2.0.59,
Хотелось-бы перейти на PHP5, но есть проблема - в SQL-е хранятся структуры данных (довольно сложные) и как следствие то, что сделано в PHP4 не всегда получается корректно unserialize в PHP5, Например:
Соответственно для PHP5 получается достаточно красивая структура:
А для PHP4 получаю непонятно что:
Собственно вопросов два:
- Это хоть как-то лечится ?
- Что делать ?
День добрый,
Достался проект написанный на PHP4 (4.4.8), все это крутится под FreeBSD 6.2 + Mysql 5.0.41 + Apache 2.0.59,
Хотелось-бы перейти на PHP5, но есть проблема - в SQL-е хранятся структуры данных (довольно сложные) и как следствие то, что сделано в PHP4 не всегда получается корректно unserialize в PHP5, Например:
PHP:
class item {
function item( &$ptr, $id ) {
$this->p = &$ptr;
$this->id = $id;
}
}
class container {
var $l = array();
function container() {
$this->p = &$this;
}
function add( &$ptr ) {
$this->l[ $ptr->id ] = &$ptr;
}
}
$c = new container;
$i1 = new item( $c, 'item1' );
$c->add( $i1 );
$i2 = new item( $c, 'item2' );
$c->add( $i2 );
echo str_replace(array("}","{"),array("}\n","{\n"),serialize($c)),"\n";
Код:
O:9:"container":1:{
s:1:"l";a:2:{
s:5:"item1";O:4:"item":2:{
s:1:"p";R:1;
s:2:"id";s:5:"item1";
}
s:5:"item2";O:4:"item":2:{
s:1:"p";R:1;
s:2:"id";s:5:"item2";
}
}
}
Код:
O:9:"container":1:{
s:1:"l";a:2:{
s:5:"item1";O:4:"item":2:{
s:1:"p";O:9:"container":1:{
s:1:"l";a:2:{
s:5:"item1";R:3;
s:5:"item2";O:4:"item":2:{
s:1:"p";R:4;
s:2:"id";s:5:"item2";
}
}
}
s:2:"id";s:5:"item1";
}
s:5:"item2";R:6;
}
}
- Это хоть как-то лечится ?
- Что делать ?

)