[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Похоже на json а это не он
ognev
Всем доброго времени суток! Будьте добры, подскажите как из такой строки вытащить отчество, при условии, что там могут быть ещё и другие значения т.е. строка может быть длиннее или короче?
Данная строка находиться в таблице БД -> По коду: Подключаемся к БД -> Получаем массив (mysql_fetch_array) в котором есть ключ со значением похожим на json, но это вроде не он, т.к. при попытки сделать json_decode получаю NULL:
[data] => a:1:{s:16:"custom_otchestvo";a:4:{s:2:"id";s:16:"custom_otchestvo";s:  5:"label";s:16:"Отчество";s:5:"value";s:22:"Анатольевич";s:4:  "text";s:22:"Анатольевич";}}

Нужно выводить Отчество. Заранее благодарен и прошу сильно не пинать т.к. php только начал изучать....
Игорь_Vasinsky
сериализация)

serialize()
unserialize()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ognev
Цитата (Игорь_Vasinsky @ 5.04.2016 - 10:35)
сериализация)

serialize()
unserialize()

Сложновато получилось для новичка smile.gif
Вылетает Notice: unserialize() [function.unserialize]: Error ...
Игорь_Vasinsky
эх пробелы, пробелы


$data = 'a:1:{s:16:"custom_otchestvo";a:4:{s:2:"id";s:16:"custom_otchestvo";s:   5:"label";s:16:"Отчество";s:5:"value";s:22:"Анатольевич";s:4: "text";s:22:"Анатольевич";}}';

$data = str_replace(" ","",$data);
var_dump(unserialize($data));


array(1) {
["custom_otchestvo"]=>
array(4) {
["id"]=>
string(16) "custom_otchestvo"
["label"]=>
string(16) "Отчество"
["value"]=>
string(22) "Анатольевич"
["text"]=>
string(22) "Анатольевич"
}
}



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
ognev
Хм... старнно, но я все равно получаю
Notice: unserialize() [function.unserialize]: Error at offset 101 of 158 bytes in /home/бла.бла.php on line 98
bool(false)
Valick
ognev, что с кодировками?


_____________
Стимулятор ~yoomoney - 41001303250491
depp
$data = 'a:1:{s:16:"custom_otchestvo";a:4:{s:2:"id";s:16:"custom_otchestvo";s:     5:"label";s:16:"Отчество";s:5:"value";s:22:"Анатольевич";s:4:   "text";s:22:"Анатольевич";}}';

$data = str_replace(" ","",$data);
var_dump(unserialize($data));


"text";s:22:"текст текст"

у вас пробелы в поле text. при их удалении, кол-во симоволов уменьшается, но serialize считатет, что их старое кол-во. поэтому ошибка.

либо вы правили вручную serialize, но забыли изменить кол-во символов на новое.
ognev
Цитата (Valick @ 5.04.2016 - 11:52)
ognev, что с кодировками?

Поменял на UTF-8 => Получил массив =)
ognev
Игорь_Vasinsky, Valick
Спасибо! Всё получилось)))
Игорь_Vasinsky
ognev
нормуль.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.