От автора: краткость – сестра таланта, «засевшего» в Twitter! Сегодня я попытаюсь создать программный «тренажер», который позволит выработать у пользователей привычку изъясняться кратко. Для этого нужно научиться подсчитывать с помощью PHP количество символов.
Набираем форму
Сначала нам нужно набрать «форму». Так сказать, привести в тонус свои мозговые мышцы. Для этого потренируемся в верстке веб-формы для тренажера:
1 2 3 4 5 6 7 8 9 10 11 12 |
<html> <head> </head> <body> <h1>Тренажер таланта</h1> <form action="simvol_schet.php"> <p><b>Введите текстовое сообщение длинной не более 140 символов:</b></p> <p><textarea name="comment"></textarea></p> <p><input type="submit" value="Подсчет показателя таланта"></p> </form> </body> </html> |
Так форма для счета знаков в строке выглядит в браузере:

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Обрабатываем
Теперь переходим к написанию обработчика для формы. Вот его первый вариант:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php $comment=htmlspecialchars($_POST['comment']); if(strlen($comment)<140) { echo $comment."<br />"; echo "Количество знаков - ".strlen($comment)."<br />"; echo "Вы талант!!!"; } else{ echo $comment."<br />"; echo "Количество знаков - ".strlen($comment)."<br />"; echo "Ваш талант нужно подтянуть!"; } ?> |
Чтобы определить длину текста, мы использовали функцию strlen(). В качестве параметров она принимает строку и возвращает число знаков в ней.
Хотя эта функция обладает одним серьезным недостатком: она считает не количество символов, а байт. Но в каждой из текстовых кодировок символ может занимать разное число байт. Например, в Unicode это может быть и два, и четыре.

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Нивелируем проблему кодировки
Чтобы «нивелировать» эту проблему, применим другую функцию – iconv_strlen(). В отличие от предыдущей эта позволяет посчитать число знаков с учетом используемой кодировки. В следующем примере демонстрируется разница количества символов в одной и той же строке, но в разных кодировках:
1 2 3 4 5 6 7 8 |
<?php $stroka="Краткость - сестра Twitter"; echo $stroka."<br />"; echo "Длина строки в UTF-8: ".iconv_strlen($stroka)."<br />"; echo iconv("KOI8-U", "UTF-8", $stroka)."<br />"; echo "Длина строки в KOI8-U: ".iconv_strlen(iconv("KOI8-U", "UTF-8", $stroka)); ?> |
Обратите внимание, какая разница результата работы функции при передаче ей в качестве параметра одно и того же текста.
Второй вариант
Валидация форм – одно из самых больных мест любого веб-разработчика. Например, в регистрационных формах нужно обеспечить правильный синтаксис вводимых данных (электронной почты, пароля, логина).
Кроме этого валиадация может быть востребована в формах комментирования, отзывов. Особенно это касается длины текста. Часто разработчикам требуется ограничить данный показатель до определенного значения. И не выводить комментарий, если он длиннее «дозволенного».
Подобное решение можно реализовать на основе первого примера:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $comment=htmlspecialchars($_POST['comment']); if(strlen($comment)<140) { echo $comment."<br />"; echo "Количество знаков - ".strlen($comment)."<br />"; echo "Вы талант!!!"; } else{ echo "<p style='color: red'>Количество знаков - ".strlen($comment).". Это превышает разрешенный объем. Комментарий не будет опубликован.</p>"; } ?> |
Сегодня мы потрудились как настоящие таланты: разработали гениальный тренажер гениальности. А также узнали, как подсчитать число знаков в тексте. Это самый «верх» талантливости и дарования :).

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!
Разработка веб-приложения на PHP
Скачайте видеокурс и узнайте, как создать веб-приложение на PHP
Скачать