Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проблемма с json_encode
Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010 Откуда: Екатеринбург
Помог: 4 раз(а)
Есть сайт. Админка работает без перезагрузки страниц.
Редактор для текста в админке CKEditor 4
Если вставить текст (в прикрепленном фале) и сохранить материал, то он нормально сохранится в базе, но не выведется на стороне клиента, вылетит ошибка функции
Если же удалить первый абзац, то все работает нормально и функция json_encode сработает нормально и отдаст желаемую строку, для формирования страницы на стороне клиента.
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
vlom, возможно, проблема в обработке текста не mb_*-функциями, или доступ к элементам строки как к массиву, через []...
В общем, как обрабатываете текст перед тем, как скормить его json_encode?
vlom
Отправлено: 26 Февраля, 2015 - 11:09:30
Частый посетитель
Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010 Откуда: Екатеринбург
Помог: 4 раз(а)
Sail пишет:
vlom, возможно, проблема в обработке текста не mb_*-функциями, или доступ к элементам строки как к массиву, через []...
В общем, как обрабатываете текст перед тем, как скормить его json_encode?
Приходят данные из формы,сохраняются в базу (фреймворк Laravel, запись в базу происходит по средствам pdo)
Потом берутся данные из базы и заносятся в массив, и уже этот массив скармливаем json_encode и вот на этом мести и возникает ошибка. Ошибка возникла только конкретно с этим текстом. Сам сайт уже работает на протяжении года и подобного раньше не случалось.
vlom
Отправлено: 26 Февраля, 2015 - 13:30:51
Частый посетитель
Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010 Откуда: Екатеринбург
Помог: 4 раз(а)
Нашел где возникает проблемма, мне надо обрезать описание если оно слишком длинное, substr(strip_tags($item->introtext), 0, 200), это происходит после сохранения, перед тем как отправлять данные на клиент, если убрать обрезку строки то все ок
Мелкий
Отправлено: 26 Февраля, 2015 - 13:41:23
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Ну так конечно utf8 битый получается, если его резать побайтово.
Для кириллицы с вероятностью 50% повреждаете последний символ, т.к. кириллица - два байта.
Не поверю, что за почти 5 лет так про mb_* и не слышали.
----- PostgreSQL DBA
vlom
Отправлено: 26 Февраля, 2015 - 14:11:47
Частый посетитель
Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010 Откуда: Екатеринбург
Помог: 4 раз(а)
Мелкий пишет:
Ну так конечно utf8 битый получается, если его резать побайтово.
Для кириллицы с вероятностью 50% повреждаете последний символ, т.к. кириллица - два байта.
Не поверю, что за почти 5 лет так про mb_* и не слышали.
Конечно слышал. Просто при mb_substr, абсолютно аналогичная ситуация получается. Решил тем что обрезаю по последнему пробелу.
Мелкий
Отправлено: 26 Февраля, 2015 - 14:13:55
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.