Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибки (глюк?) eregi
 
 автор: Gеоргий   (05.07.2010 в 02:38)   письмо автору
 
 

Привет Друзья!
Если написать так:

if (eregi("(тел.|т.|253|13|14|41|44|64|68|90|91|92|95|96)", $msg)) {echo "бла-бла-бла какоето сообщение"; exit;}

Вот эта строка всегда ругается на содержание текста, независимо от того что в нем написано или не написано,
все из-за наличия в ней "т."
Если написать код так:

if (eregi("(253|13|14|41|44|64|68|90|91|92|95|96)", $msg)) {echo "бла-бла-бла какоето сообщение"; exit;}

Без "т." код работает правильно (условие срабатывает только при наличии в тексте чего-то из перечисленного).
Почему срабатывает(глючит?) если добавить "т." ???
С уважением, Георгий

  Ответить  
 
 автор: neadekvat   (05.07.2010 в 03:02)   письмо автору
 
   для: Gеоргий   (05.07.2010 в 02:38)
 

1. Не в том разделе тему создали
2. Вместо eregi лучше использовать более современные preg_*
3. Какой литерал означает точка в рег.выражениях?

  Ответить  
 
 автор: Lexus1991   (07.07.2010 в 14:11)   письмо автору
 
   для: Gеоргий   (05.07.2010 в 02:38)
 

судя по смыслу тут точка должна быть точкой? то есть экранировать надо \.

  Ответить  
 
 автор: Gеоргий   (09.07.2010 в 02:41)   письмо автору
 
   для: Lexus1991   (07.07.2010 в 14:11)
 

Lexus1991, да точка должна быть точкой,
но почему-то вот в этой конструкции:

if (eregi("(http|://|www.|href|/a)", $msg)) {echo "бла-бла-бла другое сообщение"; exit;}

такой ерунды не происходит, и все работает.
Для neadekvat - че ж не та тема? я в форуме php пишу, а не где-то.

  Ответить  
 
 автор: Trianon   (09.07.2010 в 03:02)   письмо автору
 
   для: Gеоргий   (09.07.2010 в 02:41)
 

>Для neadekvat - че ж не та тема? я в форуме php пишу, а не где-то.

Потому что обсуждать собрались регулярное выражение.
Для этого есть раздел двумя шагами правее.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования