Как в PHP количество символов подсчитать и определить свой талант

Как в PHP количество символов подсчитать и определить свой талант

От автора: краткость – сестра таланта, «засевшего» в Twitter! Сегодня я попытаюсь создать программный «тренажер», который позволит выработать у пользователей привычку изъясняться кратко. Для этого нужно научиться подсчитывать с помощью PHP количество символов.

Набираем форму

Сначала нам нужно набрать «форму». Так сказать, привести в тонус свои мозговые мышцы. Для этого потренируемся в верстке веб-формы для тренажера:

<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

$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 "Ваш талант нужно подтянуть!";
 }

?>

Как в PHP количество символов подсчитать и определить свой талант

Чтобы определить длину текста, мы использовали функцию strlen(). В качестве параметров она принимает строку и возвращает число знаков в ней.

Хотя эта функция обладает одним серьезным недостатком: она считает не количество символов, а байт. Но в каждой из текстовых кодировок символ может занимать разное число байт. Например, в Unicode это может быть и два, и четыре.

Нивелируем проблему кодировки

Чтобы «нивелировать» эту проблему, применим другую функцию – iconv_strlen(). В отличие от предыдущей эта позволяет посчитать число знаков с учетом используемой кодировки. В следующем примере демонстрируется разница количества символов в одной и той же строке, но в разных кодировках:

<?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));

?>

Как в PHP количество символов подсчитать и определить свой талант

Обратите внимание, какая разница результата работы функции при передаче ей в качестве параметра одно и того же текста.

Второй вариант

Валидация форм – одно из самых больных мест любого веб-разработчика. Например, в регистрационных формах нужно обеспечить правильный синтаксис вводимых данных (электронной почты, пароля, логина).

Кроме этого валиадация может быть востребована в формах комментирования, отзывов. Особенно это касается длины текста. Часто разработчикам требуется ограничить данный показатель до определенного значения. И не выводить комментарий, если он длиннее «дозволенного».

Подобное решение можно реализовать на основе первого примера:

<?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 количество символов подсчитать и определить свой талант

Сегодня мы потрудились как настоящие таланты: разработали гениальный тренажер гениальности. А также узнали, как подсчитать число знаков в тексте. Это самый «верх» талантливости и дарования :) .

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Хотите изучить регулярные выражения на PHP?

Прямо сейчас посмотрите 12-ти часовой курс по регулярным выражениям на PHP!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree