<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

Этот курс научит Вас созданию самых разных сайтов на самой популярной в мире CMS - WordPress. Вы увидите установку и настройку локального сервера, разбор каждой настройки, каждой кнопки и каждого пункта меню в панели WordPress.

Также Вы получите и всю практику, поскольку прямо в курсе с нуля создаётся полноценный Интернет-магазин, который затем публикуется в Интернете. И всё это прямо на Ваших глазах.

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Форум сайта MyRusakov.ru

mb_strtolower, strtolower, stripos и др. не работают с русскими символами
25.04.2013 10:18:50 mb_strtolower, strtolower, stripos и др. не работают с русскими символами Сообщение #1
mirra

mirra

Новичок

Новичок

Дата регистрации:
25.04.2013 10:13:23

Сообщений: 8

Уважаемые форумчане, доброго времени суток. Проблема проявилась таким образом.
Когда я ввожу в код php строки, то они выводятся на экран нормально, но стоит обработать их функциями mb_strtolower, strtolower, stripos и некоторыми другими и строки сразу же превращаются в вопросы. Например если я введу:
$A="мяч";
echo $B="Наш мячик очень оригинальный!";

то $B в таком же виде, как я ввела и будет отображена на экране. Но уже попытка преобразовать строку к нижнему регистру:
echo $loveTextB= mb_strtolower($B);
приведёт к тому, что на экране $loveTextB отобразится вот так: ��� ����� ����� ������������!
В итоге результат работы функций непредсказуем. Например, попытка найти первую позиции вхождения в $B подстроки $A:
echo $pos=stripos($loveTextB, $loveTextA); или echo $pos=stripos($B, $A);
приведёт к выводу числа 7, что абсолютно не соответствует действительности. И я подозреваю, что это из-за этой вот петрушки с кодировками. Потому что если я перехожу на английский регистр, то всё становится нормально. И перевод к нижнему регистру строку не меняет и номера позиций правильно выдаются.

Тестирую на Denver, PHP Version 5.2.12. В настройках сервера стоит:
character_set_client utf8
character_set_connection utf8
character_set_database cp1251
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8

Кодировка в разделе для мета тегов указана: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> ;
В cкрипте настроек php прописаны команды: header('Content-Type: text/html; charset= utf-8'); и setlocale(LC_ALL, 'Russian_Russia.65001');
Подключен файл .htaccess со строкой: AddDefaultCharset utf-8
Никто не знает почему некоторые функции php так реагируют на русскую кодировку и как этот момент можно исправить или обойти?
Профиль
25.04.2013 11:13:15 mb_strtolower, strtolower, stripos и др. не работают с русскими символами Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Поставить в начале скрипта: mb_internal_encoding("UTF-8";
Профиль
25.04.2013 12:46:18 mb_strtolower, strtolower, stripos и др. не работают с русскими символами Сообщение #3
mirra

mirra

Новичок

Новичок

Дата регистрации:
25.04.2013 10:13:23

Сообщений: 8

Спасибо. Так и сделала. Но этого оказалось мало. Я же ещё функцию stripos использовала, а надо было mb_stripos! И если для mb_strtolower можно явно добавить кодировку, с которой она должна работать (как мне советовали на других форумах):
echo $loveTextB= mb_strtolower($B,'utf-8');То для mb_stripos этого уже не сделать, а остаётся действительно только добавление в начало скрипта строки которая указывает настройки действующие на все мульбайтовые функции!
Профиль