→ Пошук по сайту       Увійти / Зареєструватися
Знання Мова програмування PHP Работа со строками

Поиск элемента в строке

Компетенція Програмування на PHP

Поиск элемента в строке

Для того чтобы определить, входит ли данная подстрока в состав строки, используется функция strpos(). Синтаксис strpos() такой:

strpos (исходная строка,строка для поиска 
       [,с какого символа искать])

Она возвращает позицию появления искомой строки в исходной строке или возвращает логическое false, если вхождение не найдено. Дополнительный аргумент позволяет задавать символ, начиная с которого будет производиться поиск. Кроме логического false эта функция может возвращать и другие значения, которые приводятся к false (например, 0 или ""). Поэтому для того, чтобы проверить, найдена ли искомая строка, рекомендуют использовать оператор эквивалентности «===».

<?
$str = "Идея наносить данные на перфокарты
и затем считывать и обрабатывать их 
автоматически принадлежала Джону Биллингсу,
а ее техническое решение осуществил Герман
Холлерит. Перфокарта Холлерита оказалась 
настолько удачной, что без малейших изменений
просуществовала до наших дней.";
$pos = strpos($str,"Холлерит");
if ($pos !== false) echo "Искомая строка
   встречена в позиции номер $pos ";
else echo "Искомая строка не найдена";
/* заметим, что мы проверяем значение 
$pos на эквивалентность с false. 
Иначе строка, находящаяся в первой позиции,
не была бы найдена, так как 0
интерпретируется как false. */
?>
    
Пример 8.3. Использование функции strpos()

Если значение параметра строка_для_поиска не является строкой, то оно преобразуется к целому типу и рассматривается как ASCII-код символа. Чтобы получить ASCII-код любого символа в PHP, можно воспользоваться функцией ord("символ")

Например, если мы напишем $pos = strpos($str,228); то интерпретатор будет считать, что мы ищем символ «д». Если добавить эту строчку в приведенный выше пример и вывести результат, то получим сообщение, что искомая строка найдена в позиции 1.

Функция, обратная по смыслу ord, – это chr (код символа). Она по ASCII-коду выводит символ, соответствующий этому коду.

С помощью функции strpos можно найти номер только первого появления строки в исходной строке. Естественно, есть функции, которые позволяют вычислить номер последнего появления строки в исходной строке. Это функция strrpos(). Ее синтаксис таков:

strrpos (исходная строка, символ для поиска)

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

Бывают ситуации, когда знать позицию, где находится искомая строка, не обязательно, а нужно просто получить все символы, которые расположены после вхождения этой строки. Можно, конечно, воспользоваться и приведенными выше функциями strpos() и strrpos(), но можно сделать и проще – выделить подстроку с помощью предназначенных именно для этого функций.

    © INTUIT.ru. Автор: Н.В. Савельева. Курс размещен по договоренности с администрацией INTUIT.ru
загрузка...
Теми розділу
Сторінки, близькі за змістом