Тема: Unseriliize data
Показать сообщение отдельно
  #1 (permalink)  
Старый 08.07.2011, 22:02
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Unseriliize data Решено
Это храниться в БД

a:2:{i:0;a:21:{s:10:"typeOfarea";s:4:"rect";s:4:"info";s:13:"273,28,307,17";s:9:"showpanel";s:2:"on";s:6:"number";s:2:"on";s:10:"changearea";s:2:"on";s:5:"coord";s:2:"on";s:8:"fillpoly";s:14:"rgb(0, 255, 0)";s:8:"fillrect";s:16:"rgb(205, 51, 51)";s:9:"fillround";s:16:"rgb(153, 153, 0)";s:11:"opacityfill";s:3:"0.4";s:10:"sizestroke";s:1:"2";s:10:"strokepoly";s:15:"rgb(51, 0, 102)";s:10:"strokerect";s:14:"rgb(0, 51, 51)";s:11:"strokeround";s:15:"rgb(102, 51, 0)";s:13:"opacitystroke";s:3:"0.8";s:9:"sizepoint";s:1:"2";s:10:"colorpoint";s:14:"rgb(255, 0, 0)";s:10:"numbersize";s:2:"16";s:9:"colorfont";s:12:"rgb(0, 0, 0)";s:9:"coloredit";s:16:"rgb(204, 255, 0)";s:11:"areadefault";s:6:"dialog";}i:1;a:22:{s:10:"typeOfarea";s:6:"circle";s:4:"info";s:13:"426,11,458,14";s:6:"radius";s:2:"32";s:9:"showpanel";s:2:"on";s:6:"number";s:2:"on";s:10:"changearea";s:2:"on";s:5:"coord";s:2:"on";s:8:"fillpoly";s:14:"rgb(0, 255, 0)";s:8:"fillrect";s:16:"rgb(205, 51, 51)";s:9:"fillround";s:16:"rgb(153, 153, 0)";s:11:"opacityfill";s:3:"0.4";s:10:"sizestroke";s:1:"2";s:10:"strokepoly";s:15:"rgb(51, 0, 102)";s:10:"strokerect";s:14:"rgb(0, 51, 51)";s:11:"strokeround";s:15:"rgb(102, 51, 0)";s:13:"opacitystroke";s:3:"0.8";s:9:"sizepoint";s:1:"2";s:10:"colorpoint";s:14:"rgb(255, 0, 0)";s:10:"numbersize";s:2:"16";s:9:"colorfont";s:12:"rgb(0, 0, 0)";s:9:"coloredit";s:16:"rgb(204, 255, 0)";s:11:"areadefault";s:6:"dialog";}}


Тоже в нормальном виде если использую функцию unserialize на стороне сервера

[array] allzona
[array] 0
[string] areadefault = "dialog"
[string] changearea = "on"
[string] coloredit = "rgb(204, 255, 0)"
[string] colorfont = "rgb(0, 0, 0)"
[string] colorpoint = "rgb(255, 0, 0)"
[string] coord = "on"
[string] fillpoly = "rgb(0, 255, 0)"
[string] fillrect = "rgb(205, 51, 51)"
[string] fillround = "rgb(153, 153, 0)"
[string] info = "273,28,307,17"
[string] number = "on"
[string] numbersize = "16"
[string] opacityfill = "0.4"
[string] opacitystroke = "0.8"
[string] showpanel = "on"
[string] sizepoint = "2"
[string] sizestroke = "2"
[string] strokepoly = "rgb(51, 0, 102)"
[string] strokerect = "rgb(0, 51, 51)"
[string] strokeround = "rgb(102, 51, 0)"
[string] typeOfarea = "rect"
[array] 1
[string] areadefault = "dialog"
[string] changearea = "on"
[string] coloredit = "rgb(204, 255, 0)"
[string] colorfont = "rgb(0, 0, 0)"
[string] colorpoint = "rgb(255, 0, 0)"
[string] coord = "on"
[string] fillpoly = "rgb(0, 255, 0)"
[string] fillrect = "rgb(205, 51, 51)"
[string] fillround = "rgb(153, 153, 0)"
[string] info = "426,11,458,14"
[string] number = "on"
[string] numbersize = "16"
[string] opacityfill = "0.4"
[string] opacitystroke = "0.8"
[string] radius = "32"
[string] showpanel = "on"
[string] sizepoint = "2"
[string] sizestroke = "2"
[string] strokepoly = "rgb(51, 0, 102)"
[string] strokerect = "rgb(0, 51, 51)"
[string] strokeround = "rgb(102, 51, 0)"
[string] typeOfarea = "circle"

если пишу так
restore = new Array();//массив для хранения информации о точках
var restore=<? echo $allzona ?>;
alert(restore);

то выводит
function Array() {
    [native code]
}

если пытаюсь обратиться к restore[0] то выдает ошибку.
Можно конечно не использовать unserialize на стороне сервера, а передавать скрипту ту огромную строку данных, но как парсить много мерные массивы в строковом виду ума не приложу.

Сделал вот так и заработало
$allzona = json_encode(unserialize($result['area_setting']));

Последний раз редактировалось Telnet, 09.07.2011 в 00:29. Причина: решил проблему сам
Ответить с цитированием