Работа со строками

В PHP есть несколько ключевых моментов, и один из них - это...

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

 1. Функция strlen возвращает количество символов в строке.

mb_strlen - для кириллицы.

$text = 'PHP - супер язык программирования.';
echo strlen($text); // 59
echo mb_strlen($text); // 34

если нужно подсчитать без пробелов:

$text = 'PHP - супер язык программирования.';
$str = mb_ereg_replace('[\s]', '', $text);
echo mb_strlen($str); // 30

 смотрите тут, что означает \s и другие регулярные выражение в PHP

2. Информация о словах

str_word_count — Возвращает информацию о словах в виде цифр или массива, входящих в строку

Работает в (PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

 

 

Базовая формула:

str_word_count(string $string, int $format = 0, ?string $characters = null): array|int

 

Передается строка $string и возвращается число или массив в зависимости от $format :

  • 0 - возвращает количество найденных слов
  • 1 - возвращается массив, содержащий все слова, входящие в строку $string
  • 2 - возвращается массив, индексами которого являются позиции в строке $string, а значениями - соответствующие слова.

 

 $characters - Список дополнительных символов, которые будут рассматриваться как "слово"

Есть проблемы при работе с языками, может считать неправильно:

$text = 'Lorem Ipsum - is simply text!';
echo str_word_count($text); // 6

 

$text = 'Lorem Ipsum - это простой текст!';
echo str_word_count($text); // 9 слов показывает типа

 

чтобы это исправить:

$text = 'Lorem Ipsum - это простой текст!';
$str = preg_replace("/[[:punct:]]/", '', $text);
$str = mb_ereg_replace('[\s]+', ' ', $str);
$words = explode(' ', $str);
echo count($words); // 5 

 

Подсчитаем количество символов в строке

$text = 'Lorem Ipsum - это простой текст!';
echo $str = preg_replace('/[^a-zа-яё]/ui', '', $text);
// получаем это - LoremIpsumэтопростойтекст
echo mb_strlen($str); // 25 

 

Подсчитаем количество знаков препинания в строке

$text = 'Lorem Ipsum - это простой текст, правильно составленный!';
$str = preg_replace("/[^[:punct:]]/", '', $text);
echo mb_strlen($str); // 3 

 

 

Подсчитаем количество букв в строке

$text = 'Lorem Ipsum - это простой текст, правильно составленный!';
echo $str = preg_replace('/[^a-zа-яё]/ui', '', $text);
echo mb_strlen($str); // 46 LoremIpsumэтопростойтекстправильносоставленный46

 

Подсчитаем количество пробелов в строке

$text = 'Lorem Ipsum - это простой текст, правильно составленный!';
echo substr_count($text, ' '); // 7

для определения только в начале строки

$text = ' Lorem Ipsum - это простой текст, правильно составленный!';
echo mb_strlen($text) - mb_strlen(ltrim($text, ' ')); // 5

 

для определения только в конце строки

$text = 'Lorem Ipsum - это простой текст, правильно составленный! ';
echo mb_strlen($text) - mb_strlen(rtrim($text, ' ')); // 3

 

Подсчитаем количество цифр в строке

$text = 'Lorem Ipsum - это простой текст, правильно составленный!';
$str = preg_replace('/[^0-9]/ui', '', $text);
echo mb_strlen($str); // 0

 

Поиск на сайте

Организация поиска на сайте с помощью PHP тут тоже нужно поработать со строками

 

 

Сколько раз подстрока входит в строку

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo mb_substr_count($text, 'сос'); // 2

 

Первое вхождение подстроки в строку

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo mb_strpos($text, 'сос'); // 26

без учета регистра букв

echo mb_strpos($text, 'сос'); // 26

Последнее вхождение подстроки в строку

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo mb_strrpos($text, 'сос'); // 53

без учета регистра букв

echo mb_strripos($text, 'сос'); // 53

 

Сколько раз подстрока входит в строку

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';


$offset = 0;
$allpos = array();
while (($pos = mb_strpos($text, 'сос', $offset)) !== false) {
$offset = $pos + 1;
$allpos[] = $pos;
}

print_r($allpos); // Array ( [0] => 26 [1] => 53 )

 

то есть получен массив, в котором указывается, что искомое выражение найдено на 26 и 53 позициях с начала строки.

 

Извлекаем из текста

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

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo mb_substr($text, 0, 1); // L

 Как вы видите функция mb_strstr в PHP играет огромное значение.

Чтобы получить 3 первых символа - просто ставим 3 третьим параметром, логично.

А чтобы получить последний символ: echo mb_substr($text, -1, 1); и 3 последних символа echo mb_substr($text, -1, 3);

 

Как в PHP получить первое слово в тексте

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo echo mb_strstr($text, ' ', true); // Lorem

 если хотим узнать все после первого слова, то ставим просто false 3 параметром.

Чтобы получить последнее слово можно так:

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
$array = explode(' ', $text);
echo end($array); // составленный!/code>

 

 

 

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

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
echo mb_substr($text, 0, 1); // L

Получить все до последнего слова

$text = 'Lorem Ipsum - это простой составной текст, правильно составленный!';
$str = mb_substr($text, 0, mb_strrpos($text, ' '));
echo $str;

 

 

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


Защитный код
Обновить

Вы здесь: Сайтостроение Создание сайта PHP Работа со строками