Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > Инструменты разработчика

Ответ
 
Опции темы Опции просмотра
Старый 05.07.2013, 01:07   #1
Ивано++
Senior Member
 
Аватар для Ивано++
 
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
Question PHP / FORM / UTF-8?

Добрый день.

Отправляю форму.
В заголовке сайта стоит:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Но не получается правильно посчитать длину строки из русских символов.
print strlen($GLOBALS['_POST']['username']);

Правильно понимаю что когда сайт работает в UTF-8
для работы со строками всегда надо исползовать:
if (mb_strlen($searchitem, 'UTF-8') >= 4) ?

вместо strlen-обычного?

--
Спасибо.
__________________
Иван Литовченко
http://iv-litovchenko.ru/
Ивано++ вне форума   Ответить с цитированием
Старый 05.07.2013, 13:06   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Однозначно при использовании utf8 со строками использовать mb_ функций.

В расширении multibyte string (mb_) есть опция перегрузки стандартных функций, когда strlen() и прочие на самом деле подменяются mb_ аналогами. Но не все.

И я лично предпочитаю явно использовать mb_ функции, что бы не зависеть от настроек php.

В том числе в регулярках. Но там два варианта, либо использовать mb_ereg_*(), либо preg_*() с модифкатором "u".
dmartynenko вне форума   Ответить с цитированием
Старый 05.07.2013, 13:17   #3
Ивано++
Senior Member
 
Аватар для Ивано++
 
Регистрация: 18.01.2013
Адрес: Russia , Moscow
Сообщений: 796
По умолчанию

Значит тогда использую mb_
И все прекрасно работает...
И потом - уже наверное не будет сайтов без UTF-8 на typo3...

И даже не помню что бы где-то писал:
PHP код:
 // For backend charset
 
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
 
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'
 
 
// For GIFBUILDER support
 // Set it to 'iconv' or 'mbstring'
 
$TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'mbstring';
 
// For 'iconv' support you need at least PHP 5.
 
$TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'mbstring'
__________________
Иван Литовченко
http://iv-litovchenko.ru/
Ивано++ вне форума   Ответить с цитированием
Старый 06.07.2013, 16:35   #4
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

Цитата:
Сообщение от Ивано++ Посмотреть сообщение
Значит тогда использую mb_
И все прекрасно работает...
И потом - уже наверное не будет сайтов без UTF-8 на typo3...

И даже не помню что бы где-то писал:
PHP код:
 // For backend charset
 
$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8';
 
$TYPO3_CONF_VARS['SYS']['setDBinit'] = 'SET NAMES utf8;'
 
 
// For GIFBUILDER support
 // Set it to 'iconv' or 'mbstring'
 
$TYPO3_CONF_VARS['SYS']['t3lib_cs_convMethod'] = 'mbstring';
 
// For 'iconv' support you need at least PHP 5.
 
$TYPO3_CONF_VARS['SYS']['t3lib_cs_utils'] = 'mbstring'
Да, эти настройки уже признаны устаревшими, но базу данных нужно создавать с учетом utf-8! Несколько раз попадал уже на сайты с проблемами, ноги которых росли из неверной кодировки базы данных. Походу эти сайты создавались из каких-то пакетов, а уже в них база данных создавалась изначально в неверной кодировке.

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение Form (form) Form Library, Plugin and Wizard Alalal Общие вопросы 9 19.03.2013 07:57
Странные ошибки. M31 Установка 2 24.12.2008 12:33
Трабл с загрузкой *.t3x в Extension Manager Raven2000 Общие вопросы 6 08.08.2007 18:15
Проблемы c php 5.2.3 Archual Общие вопросы 4 01.07.2007 15:11
Передача данных из PHP в TS или TV-FCE c0d3r TypoScript практикум 16 11.05.2007 17:52


Часовой пояс GMT +4, время: 02:20.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория