Новини високих технологій
» » Пошук рядка в рядку PHP: опис можливостей

Пошук рядка в рядку PHP: опис можливостей

3-01-2018, 12:59
770
PHP пропонує використовувати різні варіанти пошуку рядків в інших рядках. Є звичайні функції. Є можливість використання регулярних виразів. Розробник може розробити власний варіант пошуку інформації при дотриманні правил синтаксису.
Пошук рядків не обмежується фактом підтвердження наявності потрібного символу або рядки в потрібному місці. Рядком може виступати об'єкт - це більш ємна інформаційне поняття, ніж просто рядок. Пошук особливо ефективний, коли момент виявлення супроводжується негайним прийняттям рішення, а не вимагає додаткової обробки.


Основні функціональні можливості пошуку

Пошук рядка в рядку PHP - функція strpos(). Її результат - або булевое значення, чи позиція входження шуканого (другий параметр) у рядку (перший параметр) з позиції (третій параметр). Якщо останній параметр не заданий, пошук виконується з нульової позиції рядка.
В даному прикладі PHP-пошук в рядку показаний на прикладі одиночного символу. Замість символу можна використовувати рядок. PHP не обмежує програміста в розмірах рядків, але розумні межі мають істотне значення. Шукати рядки у рядках можна з урахуванням регістра, з першого або останнього входження і використовувати регулярні вирази. Як і у всіх інших випадках, істотне значення має кодування сторінки, на якій знаходиться скрипт. В деяких випадках доцільно використовувати варіант iconv_strpos(), а не просто strpos(). У переважній більшості випадків пошук підрядка в рядку PHP забезпечить ідеально точно: достатньо тримати кодування сторінки і рядки в одному кодуванні.


Особливості стандартного підходу

Якщо пошук підрядка в рядку PHP не має результату: шуканого немає, і результат буде логічним значенням. Однак якщо шукана рядок починається з нульової позиції, то це слід виділити особливо в операціях порівняння і аналізу результату. Коли результат дорівнює 0 - це ненабагато далі відстоїть від результату false.
На відміну від jаvascript, щодо рядків PHP більш консервативний, і для нього донині рядка - це рядки. Робота з ними - це рядкові функції: від простих рівня strpos до складних, використовують регулярні вирази. Шукати потрібно, щоб: прийняти рішення про направлення алгоритму; замінити шукане на інше; перевірити подія; збільшити лічильник статистики та ін. Це звична логіка алгоритму, jаvascript пішов далі і визнав «рядка» об'єктами. Але одного визнання на практиці мало. Якщо абстрагуватися від поняття «рядок» і розуміти під ним реальний об'єкт, питання "пошук рядка в рядку" PHP дозволить сформулювати в контексті реального методу, наприклад, яблуко може бути стиглим, не тільки коли воно червоне. Класичний пошук слова "червоне" в описі яблука не є гарантія достовірної відповіді про стиглості фрукта. Якщо яблуко представлено не рядком, а об'єктом, то пошук рядка в рядку PHP не виконає як strpos, а як метод реального об'єкта. При цьому немає ніякої гарантії, що в тілі методу буде використовуватися саме функція strpos.

Стандартні функції в нестандартних рішеннях

Характерна риса звичної обробки інформації (людиною): позиція, де що знаходиться, має значення, коли саме вона є метою або рішенням. У всіх інших випадках не важливо, де що є, важливо, що воно позначено і є підставою для подальших дій.
Побічно пошук рядка в рядку PHP виконує функції trim, str_replace та інших. Цікавий варіант пошуку доступний при спільному застосуванні explode/implode та маніпулювання масивами. Якщо використовувати всю функціональність PHP, пошук у рядку легко набуває семантику, виходить за рамки звичного синтаксису і стає причиною для набуття реального сенсу. Маніпулювання змістом для людини звичніше, для алгоритму безпечніше, а трансформація рядків об'єкти - це перехід від машинних кодів у світ сучасних мов програмування.
Цікаво по темі
Використання функції trim (PHP)
Використання функції trim (PHP)
Використовується кодування символів має важливе значення. В будь-якому кодуванні є код символу, є його семантика для програміста і користувача.
Обробка символів: метод JavaScript substring()
Обробка символів: метод JavaScript substring()
Операції над рядками символів є важливою складовою алгоритмів на jаvascript. Їх використання через методи рядків не викликає труднощів, але
Використання методу JavaScript replace()
Використання методу JavaScript replace()
Метод replace малих об'єктів у мові jаvascript можливий щодо окремих символів та рядків, але більше орієнтований на використання регулярних
Використання indexOf (JavaScript) при роботі з масивами і рядками
Використання indexOf (JavaScript) при роботі з масивами і рядками
Пошук і програмування не стільки синоніми, скільки друге без першого просто не має сенсу. Шукати і приймати рішення - основа будь-якого алгоритму,
Практика PHP: порівняння рядків
Практика PHP: порівняння рядків
Хороший алгоритм порівняння рядків має важливе значення. Хоча до обробки інформації в її природному вигляді мови програмування ще не прийшли,
Обробка рядків. Метод JavaScript replace()
Обробка рядків. Метод JavaScript replace()
Гіпертекст у форматі HTML, CSS, XML, власні варіанти рядкового подання інформації з сервера надходять ...