Функции Язык программирования PHP

ereg

(PHP 3, PHP 4)

ereg - совпадение с регулярным выражением.

Описание

int ereg (string pattern, string string [, array regs])

Примечание: preg_match(), которая использует Perl-совместимый синтаксис регулярного выражения, работает часто быстрее, чем ereg().

Ищет в строке string совпадения с регулярным выражением, данным в pattern.

Если совпадения найдены для подстроки в скобках из pattern и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.
$regs[1] содержит подстроку, которая начинается с первой левой скобки; $regs[2] содержит подстроку, которая начинается со второй, и так далее. $regs[0] содержит полную копию совпавшей строки.

Примечание: до (и включая) PHP 4.1.0 переменная $regs заполняется точно десятью элементами, хотя реально может совпасть больше или меньше 10 подстрок. Это не влияет на способность ereg() совпадать с б́ольшим количеством подстрок. Если совпадений нет, $regs не будет изменяться функцией ereg().

Поиск выполняется с учётом регистра символов/case sensitive.

Возвращает TRUE, если найдено совпадение для pattern в string, либо FALSE, если совпадений нет или возникла ошибка.

Следующий фрагмент кода (внимание, совки!!) принимает дату в формате ISO (YYYY-MM-DD) и печатает её в формате DD.MM.YYYY:
Пример 1. ereg()
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) { echo "$regs[3].$regs[2].$regs[1]"; 
} else { echo "Invalid date format: $date"; }

См. также eregi(), ereg_replace(), eregi_replace() и preg_match().


Назад Оглавление Вперёд
ereg_replace Вверх eregi_replace

Глава 24. Использование PHP из командной строки

Эта опция позволяет выполнять PHP прямо в командной строке. Начальный и конечный тэги PHP (<?php и ?>) не нужны и вызывают ошибки разборщика.

Примечание: нужно проявлять внимание при использовании этой формы PHP, чтобы не было противоречий с заменой переменных командной строки, выполняемой оболочкой.

Пример, выводящий ошибку разборщика:

$ php -r "$foo = get_defined_constants();" Command line code(1) : Parse error 
- parse error, unexpected '='

Проблема здесь в том, что sh/bash выполняет замену переменной даже при использовании двойных кавычек ". Поскольку переменная $foo вряд ли определена, она ни во что не разворачивается, что в результате даёт код, передаваемый в PHP для выполнения, фактически прочитанный:

$ 
php -r " = get_defined_constants();"