Ваш $this->text
является результатом запуска serialize()
в массиве PHP, предположительно для сохранения его в столбце таблицы.Поэтому он должен быть unserialized()
обратно в массив PHP, прежде чем вы сможете использовать его в качестве массива PHP.
Однако, когда я попытался это сделать, в исходной сериализации также возникают ошибки, так какis $this->text
поврежден и непригоден для использования.
Скопировав вашу сериализованную строку из вашего вопроса, при попытке десериализации я получаю эту ошибку
$x = 'a:2:{i:0;a:2:{s:5:"value";s:2:"de";s:5:"label";s:70:"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">";}i:1;a:2:{s:5:"value";s:2:"en";s:5:"label";s:70:"<img src="assets/images/7/en-c5c09767.jpg" width="40" height="28" alt="">";}}';
$y = unserialize($x);
print_r($y);
Примечание:unserialize (): ошибка по смещению 123 из 256 байтов в D: \ PHP-SOURCE \ tst.php в строке 4
Это потому, что эта часть строки,
s:70:"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">"
неправильно подсчитывает следующую строку, так как в строке 74 символа
"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">"
Если мы исправим это, исправив счет до 74
, как это
s:74:"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">"
И повторный запуск отмены сериализации
$x = 'a:2:{i:0;a:2:{s:5:"value";s:2:"de";s:5:"label";s:74:"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">";}i:1;a:2:{s:5:"value";s:2:"en";s:5:"label";s:70:"<img src="assets/images/7/en-c5c09767.jpg" width="40" height="28" alt="">";}}';
$y = unserialize($x);
print_r($y);
Есть еще одна похожая ошибка в подсчете строк
Примечание: unserialize (): Ошибка по смещению 248 из 256 байтов в D: \ PHP-SOURCE \ tst.php в строке 8
s:70:"<img src="assets/images/7/en-c5c09767.jpg" width="40" height="28" alt="">"
Так что если мытакже исправьте эту ошибку, сделав счетчик 74
и повторно запустив
$x = 'a:2:{i:0;a:2:{s:5:"value";s:2:"de";s:5:"label";s:74:"<img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">";}i:1;a:2:{s:5:"value";s:2:"en";s:5:"label";s:74:"<img src="assets/images/7/en-c5c09767.jpg" width="40" height="28" alt="">";}}';
$y = unserialize($x);
print_r($y);
Мы получим правильно не сериализованный массив, подобный этому
Array
(
[0] => Array
(
[value] => de
[label] => <img src="assets/images/e/de-02d3d6ee.jpg" width="40" height="28" alt="">
)
[1] => Array
(
[value] => en
[label] => <img src="assets/images/7/en-c5c09767.jpg" width="40" height="28" alt="">
)
)
Короче говоря, если вы получили этоданные из базы данных Вам нужно будет посмотреть код, который сериализует эти данные, прежде чем они будут помещены в базу данных, чтобы понять, почему они неадекватно сериализуют массив в первую очередь.