Количество символов php

Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

Привет читатель блога Lifeexample!

В силу рабочих процессов, мне часто приходится заниматься копирайтингом, что обычно подразумевает использование различных сервисов для анализа текста, в том числе и платных. Я думаю, что можно основные инструменты для копирайтинга, такие как “подсчет количества символов” и “подсчет количества слов”, а также подобные задачи, решить с помощью простого PHP скрипта.

Начнем с задачи “как посчитать количество символов на PHP”, ведь это наиболее важно при оптимизации текста.

Создание формы

Скрипт будет работать с текстом пользователя, а соответственно первым делом необходимо создать поле для ввода текста.

Создаём на локальном сервере файл index.php и пишем в него:

Получается вот такая простенькая форма – как раз то, что нам нужно.


1. Как посчитать количество символов на PHP


 

Чтобы посчитать количество символов на php, насколько я помню, необходимо использовать функции strlen(). Добавим её в наш код:

Пробуем, вводим «1111», получаем:

как посчитать количество символов php

Вроде бы работает, пробуем «qwerty», получаем:

Как посчитать количество символов на php

Неплохо! И последний контрольный, пробуем «Привет», получаем:

Как посчитать количество символов на php 2

И снова, довольные, получаем количество символов…12…стоп! П-р-и-в-е-т – 6 букв, что-то не так.


Давайте разбираться! Оказывается, причина такого расхождения в том, что функция strlen() считает длину строки в байтах, а не в символах, а размер кириллических символов в UTF-8: по 2 байта вместо 1 для латинских, этого то я и не учёл.

Для того, чтобы правильно посчитать количество русских символов на php, необходимо использовать функцию mb_strlen() и не забыть указать кодировку:

Пробуем ещё раз с помощью php посчитать количество символов в слове «привет»:

Как правильно посчитать количество слов на php

Вот теперь всё верно!

2. Как посчитать количество символов без пробелов на PHP

Теперь давайте попробуем посчитать количество символов не считая пробелы, для этого используем функцию обработки строк str_replace( ):

Результат:

Пишем текст «Привет мир!»

Как посчитать количество сиволов без пробелов php

3. Как сделать, чтобы форма не очищалась после отправки

Идём дальше, как мне кажется, не совсем удобно, что текст из формы пропадает после нажатия на кнопку «Отправить». Давайте попробуем это исправить.

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

Получилось вот так:


4. Как посчитать количество слов на PHP

Функционал всё растёт, код всё увеличивается. Что дальше? Как посчитать количество символов на php, мы разобрались, теперь давайте попробуем посчитать количество слов.

Сначала мне пришла в голову мысль, что это можно реализовать просто посчитав все пробелы в тексте, но, как оказалось, PHP нам предлагает готовую функцию —  str_word_count().

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

str_word_count($text, ‘utf-8’), но функция совсем перестала работать.

Погуглив, я узнал, что заставить функцию работать правильно можно только прописав в charlist все кириллические символы, причём и верхним и нижним регистром. Что такое charlist? Сейчас объясню.

Функция str_word_count() имеет 3 параметра:

  1. String – строка. Обязательный параметр, переменная с текстом.
  2. Format — Указывает возвращаемое значение данной функции.
  • 0 — возвращает количество найденных слов
  • 1 — возвращается массив, содержащий все слова, входящие в строку string
  • 2 — возвращается массив, индексами которого являются позиции в строке string, а значениями — соответствующие слова.

  1. Charlist — Список дополнительных символов, которые будут рассматриваться как «слово».

Синтаксис такой: str_word_count(String, format, ‘charlist’), например, str_word_count($text, 0, ‘абв‘).

Таким образом, наша функция должна выглядеть так:

str_word_count($str,0,»АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя»)

Немного подумав, можно укоротить эту строчку. В таблице ASCII все русские буквы (кроме «Ё» и «ё») имеют коды с 192 по 256. Также, у нас есть функция chr(), которая возвращает символ по его коду. Можно сделать простой цикл, который сам запишет в переменную буквы русского алфавита. Понадобится ещё функция iconv(), чтобы перевести текст из кодировки utf-8 в cp1251, так как в utf-8 другие коды символов.

Получилось не намного короче, зато более логично. Мы же всё таки программированием занимаемся. В итоге наш код будет выглядеть так:

В браузере же это выглядит вот так:

Как посчитать количество слов php


На сегодня всё, теперь вы легко можете посчитать количество символов на PHP. Если всё-таки у вас остались вопросы – не стесняйтесь, задавайте в комментариях, отвечу всем.

Успехов вам и до новых встреч!

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

lifeexample.ru

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

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

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

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

Так форма для счета знаков в строке выглядит в браузере:


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

Обрабатываем

Теперь переходим к написанию обработчика для формы. Вот его первый вариант:

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

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

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

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

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

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

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


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

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

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

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

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

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

Количество символов php

webformyself.com

Файлы, .
2;вия тегу HTML <p> с использованием PHP Изменение размера изображения до квадрата, но сохраняйте пропорции и заполняйте прозрачность Как заменить n-ое вхождение в строку ЗаC.
E;вить параметры CURL при использовании запроса Kohana Мгновенное уведомление с использованием php / mysql, пожалуйста, дайте мне общую идею Создание файла .zip Что случилось с этим назн.
; Diacritics в WordPress работает, но не показывает конкретный шрифт one`s Почему мой файл preg_replace () в многострочном файле на Windows выходит из строя? Запрос диапазона дат MySQL Выпадающее значение в codeigniter с использованием массива как значений

ruphp.com


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector