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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
vlom
Отправлено: 26 Февраля, 2015 - 09:14:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Есть сайт. Админка работает без перезагрузки страниц.
Редактор для текста в админке CKEditor 4
Если вставить текст (в прикрепленном фале) и сохранить материал, то он нормально сохранится в базе, но не выведется на стороне клиента, вылетит ошибка функции
CODE (htmlphp):
скопировать код в буфер обмена
  1. json_encode(): Invalid UTF-8 sequence in argument

Если же удалить первый абзац, то все работает нормально и функция json_encode сработает нормально и отдаст желаемую строку, для формирования страницы на стороне клиента.
Скачать файл: text.txt
Скачан раз: 45
 
 Top
Sail
Отправлено: 26 Февраля, 2015 - 09:35:39
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




vlom, возможно, проблема в обработке текста не mb_*-функциями, или доступ к элементам строки как к массиву, через []...
В общем, как обрабатываете текст перед тем, как скормить его json_encode?
 
 Top
vlom
Отправлено: 26 Февраля, 2015 - 11:09:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Sail пишет:
vlom, возможно, проблема в обработке текста не mb_*-функциями, или доступ к элементам строки как к массиву, через []...
В общем, как обрабатываете текст перед тем, как скормить его json_encode?


Приходят данные из формы,сохраняются в базу (фреймворк Laravel, запись в базу происходит по средствам pdo)
Потом берутся данные из базы и заносятся в массив, и уже этот массив скармливаем json_encode и вот на этом мести и возникает ошибка. Ошибка возникла только конкретно с этим текстом. Сам сайт уже работает на протяжении года и подобного раньше не случалось.
 
 Top
vlom
Отправлено: 26 Февраля, 2015 - 13:30:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Нашел где возникает проблемма, мне надо обрезать описание если оно слишком длинное, substr(strip_tags($item->introtext), 0, 200), это происходит после сохранения, перед тем как отправлять данные на клиент, если убрать обрезку строки то все ок
 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2015 - 13:41:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ну так конечно utf8 битый получается, если его резать побайтово.
Для кириллицы с вероятностью 50% повреждаете последний символ, т.к. кириллица - два байта.
Не поверю, что за почти 5 лет так про mb_* и не слышали.


-----
PostgreSQL DBA
 
 Top
vlom
Отправлено: 26 Февраля, 2015 - 14:11:47
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 681
Дата рег-ции: Окт. 2010  
Откуда: Екатеринбург


Помог: 4 раз(а)




Мелкий пишет:
Ну так конечно utf8 битый получается, если его резать побайтово.
Для кириллицы с вероятностью 50% повреждаете последний символ, т.к. кириллица - два байта.
Не поверю, что за почти 5 лет так про mb_* и не слышали.

Конечно слышал. Просто при mb_substr, абсолютно аналогичная ситуация получается. Решил тем что обрезаю по последнему пробелу.
 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2015 - 14:13:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Не верю. Кодировку-то для mb_ указали?


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB