Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2013, 15:15   #1
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
По умолчанию Исправить eregi на preg_match()

есть такая строка
PHP код:
    (eregi("^(http|https|ftp|telnet|news|gopher|file|wais)://+[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}"$st)) 
надо ее переделать под preg_match() а то хостер перешол на php 5.3
Dante5 вне форума Ответить с цитированием
Старый 15.03.2013, 16:15   #2
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Ты не поверишь:
PHP код:
(preg_match('#^(http|https|ftp|telnet|news|gopher|file|wais)://+[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}#'$st)) 
Другой вопрос будет ли эта штука правильно определять URLы. Но задача ведь была переделать это под preg_match.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 15.03.2013, 16:53   #3
Dante5
Пользователь
 
Регистрация: 01.09.2010
Сообщений: 22
Смущение

Цитата:
Сообщение от Johnatan Посмотреть сообщение
Ты не поверишь:
PHP код:
(preg_match('#^(http|https|ftp|telnet|news|gopher|file|wais)://+[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}#'$st)) 
Другой вопрос будет ли эта штука правильно определять URLы. Но задача ведь была переделать это под preg_match.
ошибка пропало но хотелось бы чтобы и работало правильно
Dante5 вне форума Ответить с цитированием
Старый 15.03.2013, 23:39   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Так весь вопрос ведь в том, что именно оно должно делать? Находить URLы в тексте или проверять всю строку на то, URL ли это. Если второе, то должно ли оно определять всё что после знака вопроса в URI?
Есть же разные URLы:
example.com
www.example.com
http://www.example.com
http://www.example.com/
http://www.example.com/controller/action?var=value
и таких примеров много.
Как насчёт русских URLов?

Хотя, если честно, регулярных выражений для определения URLов десятки, если не сотни.
Тот, который ВОЗМОЖНО подойдёт здесь:
PHP код:
(preg_match('/^(((http|https|ftp|telnet|news|gopher|file|wais):\/\/)|www\.)[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#!]*[\w\-\@?^=%&/~\+#])?$/'$st)) 
Он не идеален, не без изъянов, но вполне рабочий.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
preg_match регулярка. Dexes PHP 3 10.02.2012 11:14
Преимущества preg_match() Dexes PHP 5 12.01.2012 17:56
Регулярные выражения eregi _PROGRAMM_ PHP 7 12.02.2011 13:49
Как запретить пробел eregi emeraudx PHP 2 18.06.2010 15:44
preg_match(); _SERGEYX_ PHP 6 09.10.2008 09:35