Работа со строками
- Подробности
- Категория: PHP
- Просмотров: 1127
В 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;