Функція strpos в PHP: визначення позиції підрядка

24 0 Новини високих технологій

Функція strpos() в PHP - одна з найбільш використовуваних при обробці даних рядкового типу. Вона дозволяє визначити позицію, починаючи з якої у вихідну рядок входить шукана підрядок. При цьому для отримання адекватного результату слід враховувати ряд тонкощів.

Вхідні і вихідні параметри

У загальному вигляді функція PHP strpos() виглядає наступним чином:

mixed strpos (string $string , mixed $substring[, int $offset = 0 ])

На вхід приймаються два обов'язкових аргументу і один необов'язковий:

  • Вихідна рядок - $string, в якій буде проведений пошук.
  • Шукана підрядок - $substring. Даний параметр має тип mixed. Це означає, що крім строкового типу даних, функція може прийняти будь-який інший. У цьому випадку аргумент буде перетворений в ціле число і оброблений, як символьний код.
  • Необов'язковий параметр, що визначає зміщення - $offset. За замовчуванням пошук проводиться з самого початку рядка $string, а зсув дорівнює 0. Якщо визначити негативний зсув, воно буде відраховуватися з кінця рядка.

Функція PHP strpos() повертає позицію, починаючи з якої $substring входить в $string. Якщо таких входжень декілька, буде повернуто тільки позиція першого з них.

Якщо збігів немає, на виході буде логічне значення false.

Особливості роботи

При пошуку позиції підрядка важливо враховувати, що відлік символів починається з нуля. Отже, 0 - одне з коректних значень.

При нестрогому порівнянні 0 приводиться до логічного типу, перетворюється в false може бути сприйнятий як відсутність входжень. Тому дуже важливо використовувати суворе рівність (===), що враховує тип порівнюваних величин.

Крім того, strpos() - приклад PHP-функції, залежної від регістру символів.

Функція strpos в PHP: визначення позиції підрядка

Приклади використання

Приклад 1. Просте входження. Потрібно знайти позицію, на якій підрядок key входить в рядок monkeys.

   

Приклад 2. Відсутність входжень. Якщо змінити шуканий рядок на KEY, функція PHP strpos() не виявить співпадінь, так як є регистрозависимой. Результатом буде логічне значення false.

    

Приклад 3. Входження на нульовій позиції. Важливо використовувати суворе рівність, перевіряючи результат роботи функції, інакше можна отримати некоректний результат.

    

Перші дві перевірки визначать відсутність входжень, незважаючи на те, що підрядок life входить у вихідну рядок lifehack.

Приклад 4. Зміщення початкової позиції за допомогою параметра $offset.

    

Після установки зсуву, що дорівнює 3 пошук починається з символу "е".
Функція strpos в PHP: визначення позиції підрядка

Схожі функції

Для визначення позиції підрядка в PHP існують і інші функції, відмінні від strpos():
  • stripos() - не враховує регістр символів;
  • strrpos() - визначає останнє входження;
  • strripos() - шукає останнє входження і не враховує регістр.