Получить длину строки можно с помощью функции
int strlen(string str).
Поиск символов и подстрок в строке выполняется с помощью следующих функций:
int strpos(string haystack, string needle [, int offset])
int strrpos(string haystack, char needle)
int strspn(string str1, string str2)
int strcspn(string str1, string str2)
int substr_count(string haystack, string needle)
Функция strpos() определяет позицию начала первого появления, а функция strrpos() – позицию начала последнего появления подстроки needle в строке haystack. Если задан третий параметр, просмотр строки начинается с позиции offset, иначе – с начала строки. Если подстрока не найдена в строке, обе функции возвращают false.
Функция strspn() возвращает длину начального сегмента str1, полностью состоящего из символов строки str2, а функция strcspn(), наоборот, возвращает длину начального сегмента str1, не содержащего ни одного из символов строки str2.
Функция substr_count() возвращает количество повторений подстроки needle в строке haystack.
Пример 4.6.113. Использование функций strpos() и substr_count():
В следующем фрагменте программы определяются все индексы начала подстроки в строке $str, а также общее количество вхождений подстроки в строку.
|
|
$str = 'Ivanov Ivan Ivanovich'; // Проверяемая строка
// Определение позиции первого
// вхождения подстроки
$currentPos = strpos($str, 'Ivan');
// Определение позиций остальных
// вхождений подстроки в цикле
while($currentPos!== false)
{
// Вывод позиции текущего
// вхождения подстроки
print "\n pos=".$currentPos;
// Определение позиции следующего
// вхождения подстроки
$currentPos = strpos($str, 'Ivan', $currentPos + 1);
}
// Вывод количества вхождений
// подстроки в строке
print "\nNumber of entering: ".substr_count($str, 'Ivan');
В результате выполнения фрагмента на экран будут выведены следующие строки:
Пример 4.6.114. Использование функций strspn() и strcspn():
В результате выполнения следующего фрагмента программы:
$str = "Ответ:42"; // Исходная строка
// Определение длины начального сегмента,
// не содержащего ни одной цифры
$var1 = strcspn($str, "0123456789",2);
// Определение длины начального сегмента,
// полностью состоящего из цифр
$var2 = strspn($str, "0123456789", 6);
// Вывод $var1 и $var2
print "\$var1=$var1 \$var2=$var2";
переменная $var1 – значение 6 (строка "Ответ:"), а переменная $var2 получит значение 2 (строка "42"):