Функция strlen применение/синтаксис/примеры
Функция strlen. Для чего используется strlen в php, как переводится, примеры применения strlen в php. + двоюродная сестра "strlen в php" mb_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 :
Функция strlen - возвращает длину строки
Для данной функции 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 с нормальной строкой в которой буквы... и если это строка, то естественно вы должны обращать на кодировку, которую вы используете на сайте, если вы также как и я используете utf-8, то вам это тоже нужно знать:
Пусть это будет слово "Привет" - здесь тоже 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 может отличаться работа функции...
От кодировки страницы/сайта...
И еще хрен знает отчего...(основано на личном опыте...)
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: