Від автора: тут недавно зі знайомим філологом зустрівся в «невимушеній» обстановці. Так він заявив, що програмні дисципліни не можуть називатися мовами, оскільки не включають в себе вираження. Я відповів, що він не правий. Ось, наприклад, є PHP вираження. А якщо він ще раз зачерпне чіпси з мого кулька, то буде посланий з допомогою регулярного виразу, запозиченого з російської мови.
Висловлюємося ясніше
Вираження – основна структура мови програмування. Будь-який рядок, що закінчується присвоєнням значення або будь-який елемент, який має значення, є вираженням.
Всі вони відокремлюються один від одного крапкою з комою («;»). Виходить, що будь-яка рядок коду є вираженням. Якщо між виразами не поставити оператор роздільник, тоді інтерпретатор замість результату виконання скрипта виведе повідомлення про помилку.
Крім цього в програмуванні існують не зовсім звичайні вирази – регулярні. Не є винятком з правил і вивчається нами дисципліна. Але осягати PHP регулярні вирази краще на прикладах.
Страшна річ!
Ох, як я намаялся з цими регулярками в роки свого студентства. Але, як би не хотілося їх обійти, все одно без регулярних виразів не обійтися. Постараюся доступніше пояснити їх призначення.
Регулярні вирази найчастіше використовуються для пошуку і фільтрації даних. На їх основі побудована більша частина пошукових фільтрів, реалізованих на сайтах. Наприклад, для вибору потрібного товару в інтернет-магазинах. А також всілякі парсери.
Також регулярки часто застосовуються у формах для валиадции введених користувачем даних, щоб значення полів відповідали певним правилам.
З цим прикладом застосування регулярних виразів ви точно стикалися, коли заповнювали яку-небудь реєстраційну форму на сайті. Найчастіше з їх допомогою встановлюється синтаксис написання пароля або адреси електронної поштової скриньки. При недотриманні правил виводиться повідомлення про порушення синтаксису або заповнюються поле забарвлюється в червоний колір.
Але повернемося до застосування регулярних виразів в PHP.
Практика
PHP не тільки підтримує regular expressions, але і надає безліч інструментів для роботи з ними. Найпростішою у вживанні є функція ereg(), яка служить для пошуку входить рядку співпадінь, заданого регулярним виразом.
Але дана функція хоч і працює, але вважається (починаючи з версії PHP 5.3) застарілою. Замість неї краще використовувати preg_match().
Зверніть увагу, як у цьому прикладі використання регулярних виразів в PHP заданий шаблон для пошуку. На відміну від попереднього варіанту тут ми екранували рядкове значення з допомогою правого слешу. Це особливість синтаксису побудови regular expressions, яку варто враховувати.
У попередньому прикладі ми шукали підрядок в нижньому регістрі. Тепер трохи змінимо наш приклад:
Як бачите, не вдалося знайти «PHP»! І все з-за різних регістрів в шаблоні і первісної рядку. Але це можна змінити за допомогою спеціального модифікатора i, який включає регистронезависимость при пошуку.
Регулярні вирази PHP – це об’ємна тема, занурення в яку ми продовжимо при нашій наступній зустрічі. І головне, не дозволяйте яким-небудь філологам безкарно «тирити» чіпси зі своєї пачки. Напевно, їх цьому спеціально навчають на філологічних факультетах .