Функция strlen применение/синтаксис/примеры
strlen функция в php, описание синтаксис:
- Функция strlen в php
- Функция strlen и число(тип int) в php
- Функция strlen и число(тип string) в php
- Strlen в utf-8
не работает с кириллицей - Как заставить работать Strlen в utf-8.
Mb_strlen utf-8 с кириллицей- Зачем нужно было проверять на тип в Strlen
Функция strlen в php
Начать нужно с определения, что такое strlen :Это нужно для тех, у кого например utf-8 кириллица.
Покажет количество байт в два раза больше, чем элементов!
Синтаксис функции strlen
strlen ( string $string ) : int
Расшифровка синтаксиса strlen
strlen - название функции.
string - тип : строка string
$string - переменная в php ...
Возвращаемый тип "int"
Функция strlen и число в php
Для того, чтобы понимать, как работает Функция strlen разберем несколько примеров! В данном пункте будем испытывать strlen и число! Плюс дополнительно будем использовать функцию var_dump для получения данных о переменной....Нам нужно число, над которым будем испытывать функцию strlen!
Пусть это будет "123456"
Оборачиваем это число в функцию strlen:
И выводим через echo:
Результат вывода длины числа через strlen:
Количество символов соответствует возвращенному числу:
Тип возвращенного значения strlen:
Далее.. для подтверждения синтаксиса, чтобы узнать какой тип переменной вам вернётся, обернем эту конструкцию в var_dump и выведем с помощью echo
Пример возвращаемого значения strlen:
Вывод число(int) и strlen, что с числом, изначально имеющий тип int вернет тип "int" и значение "6", количество байт равно количеству символов.
Функция strlen и число(тип string) в php
Второй пример с функцией "strlen"... передадим в функцию strlen "число" тип stringКак вы наверное знаете, что если число поместить в кавычки, то тип переменной поменяется с int на string. Для этого возьмем выше приведенный пример и поместим число в кавычки и получим данные о пермеременной с помощью var_dump:
Выведем данный пример прямо здесь:
Переходим к функции strlen
Теперь вы/я занем, что число у нас имеет тип строку, эту строку поместим в strlen, пропустим через strlen и выведем с помощью echo
Данный пример вернул количество байт(равно количеству символов)
Узнаем тип возвращенных данных
Вывод числоstring и strlen, что с числом, изначально имеющий тип string вернет тип "int" и значение "6", количество байт равно количеству символов.
Strlen в utf-8 не работает
Далее... проверим работу strlen с нормальной строкой в которой буквы...
Пусть это будет слово "Привет" - здесь тоже 6 знаков, и в самом начале, пропустим её через var_dump, чтобы узнать все об этой строке:
Из результата мы видим, что это тип строкаstring, количество байт - 12.
Теперь проверим работу strlen в utf-8
Мы узнали, что эта строка, следующим действием пропустим эту строку через strlen:
Логично было предположить, что функция вернет значение такое же как и var_dump.
Теперь проверим тип возвращенных данных.
Видим, что в случае со строкой, все равно вернет число "int".
3) . Вывод строкаstring и strlen:
Вывод строкаstring и strlen, что со строкой, изначально имеющий тип string вернет тип "int" и значение "12", количество байт
кириллица + utf-8 и strlen
Как заставить работать Strlen в utf-8.
Выше вы поняли, что "Strlen в utf-8" не работает с кириллицей - вопрос :
Заставляем работать Strlen в utf-8 с кириллицей:
Для того, чтобы заставить работать Strlen в utf-8 с кириллицей: вам понадобится:Поместим в переменную наше слово:
Перекодируем строку из "UTF-8" в "windows-1251":
Выведет результат работы Strlen с кириллицей через echo
echo $var;
Соберем весь код:
Код Strlen в utf-8 с кириллицей:
<?
$var = 'Привет';
$var = iconv("UTF-8", "windows-1251", $var);
echo $var;
?>
echo strlen(iconv("UTF-8", "windows-1251", "Привет"));
Результат Strlen в utf-8 с кириллицей:
Как видим... наш "Strlen " замечательно сработал в utf-8 с кириллицей:6
Mb_strlen utf-8 с кириллицей.
Не буду делать отдельную страницу про Mb_strlen - не хочу...Для того, чтобы функция "Mb_strlen" сработала вам понадобится:
С числом... логично смысла заморачиваться нет, но вот со строкой проведем пару манипуляций! Поместим прямо в функцию "Mb_strlen" любой текст, пусть это будет опять "привет"...
Для кириллицы добавляем второй аргумент "UTF-8":
И аналогично выводим с помощью echo.
Соберем весь код:
Код использования Mb_strlen utf-8 с кириллицей.
<?
echo mb_strlen ("привет" , "UTF-8");
?>
Результат использования Mb_strlen utf-8 с кириллицей.
И поместим, как обычно наш код прямо здесь:
Зачем нужно было проверять на тип в Strlen.
Вы законно можете спросить : "Зачем нужно было проверять на тип в Strlen"?
Иногда(довольно редко, но...) происходит совершенно непонятные действия с различными функциями и они(функции) работают не так, как написано в учебнике - это парадокс, но такое случается!
Ты бьешься полчаса... два часа, полдня и понять ничего не можешь - бл*ть да что же это такое...
Сразу несколько переменных влияют на работу php:
От номера версии php может отличаться работа функции...
От кодировки страницы/сайта...
И еще хрен знает отчего...(основано на личном опыте...)
strlen php
php mb strlen
php strlen кириллица
php функция strlen
php strlen utf
php strlen неправильно работает
strlen php русские символы
php mb strlen utf
php mb strlen

подробнее.
подробнее.