Forum Webscript.Ru

Программирование => PHP => Тема начата: GRS от 23 Сентября 2005, 18:23:11

Название: О функции ereg()
Отправлено: GRS от 23 Сентября 2005, 18:23:11
Приветствую.

Мне нужно получить FALSE при условии, что строка больше двух символов (любых). Я использую ereg(). Вот, как я пишу:


$txtFirm="КНБ";

if(ereg(".{2}", $txtFirm)==1){
   print"OK
";
}
else{
   print"NO!
";
}
 

Ответ ОК я получаю всегда, хоть сколько там символов, будто он не понимает мои скобки {}. Где ошибка?

А, и еще: если в условии функции ставить не два знака равенства подряд, а один - всегда выполняется условие до ELSE и все. Пробовал на разных вариантах, даже, делал цикл if ($a=1){...}else{...} при том, что $а = 21222, все равно: выполняет что идет до ELSE. Везде в документациях в примерах стоит один знак равенства, но теперь я вообще сомневаюсь в объективности этих "учебников".

Может дело в программе? У меня PHP Expert Editor 3.3, я заметил у него одну особенность: что бы нормально страница функционировала после изменения в ней кода, необходимо чистить Tempory Internet Files всякий раз перед запуском, иначе, работет неправильно, зачастую не реагирует на изменения в коде, а страницу из берет кэша.

Может, за одно, посоветуете хорошую программу с подсветкой кода PHP?
Название: О функции ereg()
Отправлено: Макс от 23 Сентября 2005, 19:38:29
[p]strlen[/p]
Название: О функции ereg()
Отправлено: GRS от 23 Сентября 2005, 20:00:31
Спасибо, тут разобрался уже: символ "точка" сам по себе означает ОДИН любой элемент. Выражение построено неправильно.
Название: О функции ereg()
Отправлено: Меняздесьдавнонет от 23 Сентября 2005, 20:01:37
PHP FAQ: Регулярные выражения. (http://phpfaq.ru/regexp)