[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: По регулярке подскажите
bobo
Привет.

Немогу додумать, как из строки текста выдернуть корректно написанную ссылку. Не получается одно - если после ссылки есть текст, во всех остальных случаях работает. Подскажите, как дописать проверку.

Заранее благодарю!

	$str = array(
"efsfsd",
"sf87sdfg",
"d fg gfgf www.site.ru g fg gf h", //НЕ ПРОХОДИТ
"sfdfsg.dsg.sdfg",
"www.",
"http://site.ru",
"http://",
"sdfsdf.www.dsf",
"ftp://ftp.si_te.ru",
"dfgdfg.ftp.fdg",
"www.sdfsdf",
"dsgs g http://www.site.ru", //ПРОХОДИТ
"http://www.site.ru r fg gf", //НЕ ПРОХОДИТ
"fd dfhg ftp://",
"ftp.",
"ftp.site.ru",
"https://",
"https://si-te.ru",
"https://site.net",
"https://site-net.net.ne-t",
"https://site.",
"asdf.https://site.ru"

);

foreach($str as $val) {

if(preg_match("/(?:^|[\n\s])((?:www\.)|(?:(ht|f)tp(s)?)(?:(\.|:\/\/)))+[-_а-яА-Яa-zA-Z0-9]*(?:\.[а-яА-Яa-zA-Z]+)[^\s]$/is",$val)) {

echo $val." - ПРАВИЛЬНАЯ ссылка!</br>";

}

else {

echo $val." - неправильная ссылка!</br>";

}

}





Спустя 18 минут, 39 секунд (2.07.2012 - 17:39) Игорь_Vasinsky написал(а):
начни с

#^[http|https|ftp ....

Спустя 4 минуты, 20 секунд (2.07.2012 - 17:44) bobo написал(а):
Цитата (Игорь_Vasinsky @ 2.07.2012 - 19:39)
начни с

#^[http|https|ftp ....

С этим как раз все нормально, я ж проблему вроде обозначил.

Спустя 1 час, 51 минута, 48 секунд (2.07.2012 - 19:35) bobo написал(а):
Если кому интересно, получилось так:
preg_match("/(?:^|[\n\s])((?:www\.)|(?:(ht|f)tp(s)?)(?:(\.|:\/\/)))+[\w\-]*(?:\.[а-яА-Яa-zA-Z]+)(?:\s|$)/is",$val)


Т.е. перед закрывающим слэшем добавил (?:\s|$)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.