mirsite

      главная страница     письмо     Добавить в избранное

    PHP // MySQL // .htaccess


   Об авторе >>>



Главная страница

PHP

     Статьи

     Функции

       Строки

       Массивы

       Файлы и файловая система

       Работа с сетью

       Дата и время

       Специальные

       Регулярные выражения (POSIX)

     Книги

MySQL

Apache и .htaccess

Полезные сервисы

Новости

Ссылки

Карта сайта



Строки



strpos

PHP 3, PHP 4, PHP 5

Функция strpos возвращает позицию первого вхождения подстроки. С ее помощью можно искать какой-либо фрагмент строки или проверять его наличие в строке.

<?php
$string 
'abc';
$find1 'a';
$find2 'b';
$pos1 strpos($string$find1);
// выведет 0 - буква а в нулевой позиции
$pos2 strpos($string$find2);
// выведет 1 - буква b в первой позиции
?>


Очень часто функция strpos используется для определения, есть ли вообще искомая строка в тексте. Здесь нужно помнить одну тонкость. Элементы строк, как и элементы массивов, нумеруются начиная с нуля. Если искомый фрагмент не найден, функция strpos вернет FALSE. А если он найден в самом начале строки в первой (то есть нулевой позиции) то strpos вернет 0. Чтобы различить эти ситуации, нужно использовать не обычное равенство == а тождественное ===, способное различать типы данных.

<?php
$string
="abcdef";
$find="a";
// не правильный вариант с ==
if (strpos ($string$find) == FALSE) { echo 'no'; }
 else { echo 
'yes'; }
// не смотря на то, что a есть в строке abcdef, вы увидите на экране no.
// правильный вариант с ===
if (strpos ($string$find) === FALSE) { echo 'no'; }
 else { echo 
'yes'; }
// теперь вы получите yes
?>


И не забывайте о строгом порядке аргументов - сначала строка в которой ищем, затем - что ищем.

Кроме того, функции strpos можно указать, с какого символа начинать поиск. В следующем примере функция пропускает три первых символа (0, 1, 2) и ищет указанную букву в оставшейся части строки. Но номер выводит все равно считая от начала.

<?php
// Ищем, начиная с третьего символа
$string 'abcdefabcdef';
$pos strpos($newstring'b'2); 
// $pos = 7 
?>



Все функции раздела >>>




  

Александр Мироненко, MirSite.ru © 2005-2014       
Сайт обновлен 24 июня 2019 года