Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Регулярні вирази в PHP [АйТи бубон]

Регулярні вирази в PHP .

PHP підтримує два стилю синтаксису регулярних виразів POSIX і Perl . Стиль POSIX вбудований в PHP за замовчуванням, а стиль Perl доступний після компіляції з бібліотекою PCRE . PHP підтримує два стилю синтаксису регулярних виразів   POSIX   і   Perl

В PHP для роботи з регулярними виразами PCRE використовуються кілька функцій.

php.net: preg_match припиняє свою роботу після першого знайденого збіги. Якщо необхідно знайти, або порахувати всі збіги, слід скористатися функцією preg_match_all.

int preg_match (string pattern, string subject [, array matches [, int flags]])

preg_match () повертає FALSE в разі, якщо під час виконання виникли будь-які помилки. У разі, якщо додатковий параметр matches вказаний, він буде заповнений результатами пошуку. Елемент $ matches [0] буде містити частину рядка, відповідну входженню всього шаблону, $ matches [1] - частина рядка, які відповідають першій подмаскі (то що знаходиться усередині шаблону).

  • Приклад. В HTML тексті знаходиться одна таблиця. Її потрібно вирізати в двох варіантах, перший з тегами ($ matches [0]), друге тільки текст міститься між тегами ($ matches [1]). Нижче наведений приклад можна використовувати для обробки будь-яких тегів. &lt;? Php / * * Обробка результату виведення утиліти ipcalc. Ключ -h дозволяє отримати результат в HTML. * / $ IPs = '10 .26.95.0 / 24 '; $ Escaped_IPs = 'ipcalc -h' .escapeshellcmd ($ IPs); $ Output = shell_exec ($ escaped_IPs); preg_match ( '| <table (. *) </ table> | Uis', $ output, $ matches); print_r ($ matches [0]); // результат з тегами <table> </ table>. Весь шаблон. print_r ($ matches [1]); // результат вміст тегів <table> </ table>. ?>

s (PCRE_DOTALL) Якщо даний модифікатор використовується, метасимвол "точка" в шаблоні відповідає всім символам, включаючи переклад рядків. Без нього - всім, за винятком переказів рядків. Цей модифікатор еквівалентний запису / s в Perl. Клас символів, побудований на запереченні, наприклад [^ a], завжди відповідає перекладу рядка, незалежно від наявності цього модифікатора.

  • Витягуємо ім'я хоста і протокол з URL preg_match ( '@ ^ (?: Https?: //)? ([^ /] +) @I', $ usr1, $ matches); print_r ($ Matches [0]);

preg_match_all

int preg_match_all (string pattern, string subject, array matches [, int flags [, int offset]])

Функція працює також, як і preg_match, але шукає не тільки перше входження, а всі наявні і складає їх в масив matches, який для даної функції (на відміну від preg_match ()) є обов'язковим.

preg_replace - виконує пошук і заміну по регулярному виразу. Виконує пошук в рядку subject збігів з шаблоном pattern і замінює їх на replacement. У разі, якщо параметр limit вказано, буде проведена заміна limit входжень шаблону.

mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])

  • Приклад. Чистка прогалин. &lt;? Php $ str = 'foo o'; echo $ str. "\ N"; $ Str = preg_replace ( '/ \ S \ s + /', '', $ str); echo $ str. "\ N"; ?>
  • Приклад. Видалення всіх символів "-". &lt;? Php $ str = '2012-04-05'; echo $ str. "\ N"; $ Str = preg_replace ( '/ - /', '', $ str); echo $ str. "\ N"; ?>

У PHP існує дві функції для пошуку рядків за допомогою регулярних виразів ereg () і eregi (). Єдина відмінність між ними функція eregi () нечутлива до регістру.

POSIX функції ereg () і eregi () оголошені застарілими (DEPRECATED). рекомендується використовувати PCRE сумісні функції. regexp_php.txt · Останні зміни: 2019/03/03 15:46 - darkfire

Lt;?
Lt;?
N"; ?
Lt;?
N"; ?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.