[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Кракозяблики после использования функции explode
Master812
Всем привет!

Перевёл свой движок на UTF-8 и PHP 7. Имеется форма для ввода данных "Тема поста", "Сам пост" и "Тэги". Первые два записываются в MySQL нормально, то есть без этих долбаных кракозябликов, а вот поле "Тэги" увы с ними. Дело в том, что в поле "Теги" заносится текст вида "тэг 1, тэг 2, тэг 3" в переменную $tags а потом в скрипте они разделаются так:
$tags_mas = explode(",", $tags);

Если убрать эту часть скрипта, то кракозяблики исчезают. Полагаю, что проблема в функции explode. Как исправить не понимаю. В интернете искал ответ, но не нашёл. Как научить эту функцию понимать UTF-8 в PHP 7?

Жду ответа.
С уважением.
VeRTak
Master812 Проблема явно не в explode
Игорь_Vasinsky
а если вывести

echo $tags;


что там?

какой collation у поля для тегов в бд ?

_____________
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
Эли4ка
header('Content-Type: text/html; charset= utf-8');

Далее в .htaccess AddDefaultCharset UTF-8
Все файлы и скрипты перевести в UTF-8 кодировку
БД настроить на работу с UTF-8.
Далее промежуточные выводы или код сюда.
Так как explode для разделения создана, а не для кодировки.
SlavaFr
пхп нет пишет о explode "Note: This function is binary-safe."
Это означает, что эта функция чхать хотела на UTF-8 и найдя в мультибайтном отображение буквы запятую изуродует её не взирая не на что.
Для того, что бы работать с мультибайтным текстом нужно использоватъ подходящие функции.
К примеру mb_split()


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Master812
Всем сори!
Я Олень:))) У меня несколько строк выше шла вот такая строка:
$tags = mb_strtolower($_POST['tags']);


Я просто переделал на вот это и всё заработало:
$tags = mb_strtolower($_POST['tags'], 'utf-8');


Так что проблема была действительно не в explode.
VeRTak
Цитата (Master812 @ 16.03.2018 - 00:06)
Я Олень:)))


Серьезное заявление laugh.gif
Быстрый ответ:

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