25.8. Операции поиска символов
Рассмотрим способы получения доступа к указанным символам в строке, а также получения позиции символов при помощи следующих функций:
• strpos(),
• strrpos().
Функция strpos() находит первую позицию указанного символа и возвращает целое число, равное количеству символов с начала этой строки. Приведем синтаксис функции strpos():
int strpos (string haystack, string needle [, int offset])
Strpos () возвращает целое значение, равное количеству символов, отсчитанных с конца. Параметр haystack устанавливает строку, в которой будет осуществляться поиск указанного символа. Сам символ устанавливается параметром needle.
Следует отметить, что needle в этом случае может быть только единственным символом.
Если в качестве параметра needle указывается строка, то только первый символ будет использован.
Если needle не найден, то возвращается false. Если параметр needle не является строкой, то он переводится в десятичное число и рассматривается как числовое значение символа.
Третий параметр offset отвечает за количество символов, от которых будет производиться поиск указанного символа needle. В этом случае длина, возвращенная функцией strpos(), все равно будет отсчитываться с начала строки. Приведем пример:
<?php
$string = "Мама купила красную шапку";
$strnew = strpos($string, "п");
$strnew1 = strpos ($string, "п", 10);
echo "Первоначальная строка: ".$string."<br><br>";
echo "Количество символов, начиная с начала строки до первого символа 'п': ".$strnew."<br><br>";
echo "Количество символов, начиная с начала строки до первого символа 'п', пропустив при этом первых 10 символов: ".$strnew1."<br><br>";
?>
Функция возвратит две строки, первая из них будет соответствовать количеству символов, отсчитанных с начала указанной строки, при этом третий параметр указан не был. Во втором случае был указан третий параметр, в результате чего поиск символа «п» будет начинаться не с начала строки, а с десятого символа. Далее будет осуществляться поиск до первого символа «п», после чего функция подсчитает количество символов до найденного символа «п» и произведет возврат строки, равной целому числу символов. В этом можно убедиться, обратившись к результату приведенного скрипта:
Первоначальная строка: Мама купила красную шапку
Количество символов, начиная с начала строки до первого символа 'п' : 7
Количество символов, начиная с начала строки до первого символа пропустив при этом первых 10 символов: 22
Функция strrpos() по принципу работы аналогична функции strpos(), единственное ее отличие заключается в том, что функция strrpos() находит позицию последнего появления символа в строке. Функция имеет следующий синтаксис:
int strrpos(string haystack, char needle)
Как было уже сказано, strrpos возвращает номер позиции последнего появления символа needle в строке haystack.
Описанные функции используются в РНР 3 и РНР 4.