Новини високих технологій
» » Функція strpos в PHP: визначення позиції підрядка

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

12-02-2018, 11:45
1 146
Функція 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-функції, залежної від регістру символів.

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

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

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

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

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

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



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

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

Для визначення позиції підрядка в PHP існують і інші функції, відмінні від strpos(): stripos() - не враховує регістр символів; strrpos() - визначає останнє входження; strripos() - шукає останнє входження і не враховує регістр.
Цікаво по темі
Box-sizing в CSS: обчислення розмірів блоку
Box-sizing в CSS: обчислення розмірів блоку
Блокова модель CSS, визначення реального розміру елемента. Область рамки, внутрішніх відступів і контенту. Зміна алгоритму обчислення розмірів за
Властивість CSS margin: зовнішні відступи елементів
Властивість CSS margin: зовнішні відступи елементів
Визначення зовнішніх відступів елементів за допомогою властивості CSS margin. Груповий синтаксис і завдання маргинов окремо для кожної сторони.
PHP array_search: пошук значення в масиві
PHP array_search: пошук значення в масиві
Пошук значення в масиві за допомогою функції PHP array_search. Синтаксис, вхідні параметри і значення, що повертається. Механізм пошуку, залежність
Як здійснити запис у файл Java
Як здійснити запис у файл Java
При написанні програм на мові Java рано чи пізно постане необхідність читання і запису інформації в файл. Для цього в мові передбачені наступні
Пошук рядка в рядку PHP: опис можливостей
Пошук рядка в рядку PHP: опис можливостей
Для прийняття правильного рішення необхідно точно визначити зміст отриманої інформації. Звичайне застосування функцій пошуку рядків - не єдине
Рядковий оператор в Pascal - string
Рядковий оператор в Pascal - string
Програмування постійно пов'язане з роботою з деякими даними, зокрема, з рядками. Рядковий оператор задається однаково в більшості мов, у тому числі в