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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: парсить ссылки в html-код

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: SHAman   (07.09.2007 в 18:12)   письмо автору
 
   для: kasmanaft   (07.09.2007 в 18:01)
 

угу. Ладно, оставляем вышеприведенный тобой вариант:)

   
 
 автор: kasmanaft   (07.09.2007 в 18:01)   письмо автору
 
   для: SHAman   (07.09.2007 в 17:42)
 

Тогда, написав урлы через пробел, заменятся не все, потому что ОНО съест два символо "не = и следующий". От линка останется ttp://...
Это, по-моему, как раз тот случай, когда нужно заглянуть назад.

Можно, конечно, придумать ченить... Но зачем..
([^='\"]['\"]?)((?:ftp|http..........

   
 
 автор: SHAman   (07.09.2007 в 17:54)   письмо автору
 
   для: Саня   (07.09.2007 в 17:40)
 

Так не интересно:) Интересно самому:) Мозгом.

   
 
 автор: SHAman   (07.09.2007 в 17:42)   письмо автору
 
   для: SHAman   (07.09.2007 в 17:38)
 


$reg = "/([^=].)((?:ftp|https?):\/\/)([a-z0-9:\/?&=%#_.-]+)/si";
$replace = "$1<a href='\$2\$3'>\$2\$3</a>";
$text = preg_replace("$reg", "$replace", $text);

   
 
 автор: Саня   (07.09.2007 в 17:40)   письмо автору
 
   для: sni   (07.09.2007 в 12:07)
 

http://php.spb.ru/php/url2.html
http://webcode.ru/re/href/

   
 
 автор: SHAman   (07.09.2007 в 17:38)   письмо автору
 
   для: kasmanaft   (07.09.2007 в 17:18)
 

Вот чет не получается....

$reg = "/([^=]['\"]?)((?:ftp|https?):\/\/)([a-z0-9:\/?&=%#_.-]+)/i";
$replace = "$1<a href='\$2\$3'>\$2\$3</a>";

   
 
 автор: kasmanaft   (07.09.2007 в 17:18)   письмо автору
 
   для: SHAman   (07.09.2007 в 16:56)
 

Да хз.. Можно и проверить, почему нет?
Можно, наверное, ограничиться =['"]? .. или даже \S["']?

Есть еще в css url(...) =]
А можно урл в конце предложения привести и точку поставить...

   
 
 автор: SHAman   (07.09.2007 в 16:56)   письмо автору
 
   для: kasmanaft   (07.09.2007 в 16:44)
 

Ну да, как вариант... А без заглядываний? К тому же, урл может быть указан, скажем, для src картинки... Что теперь, и их проверять заглядываниями?

   
 
 автор: kasmanaft   (07.09.2007 в 16:44)   письмо автору
 
   для: SHAman   (07.09.2007 в 16:41)
 

Но можно вот так: (?<!(href=['"])|(href=)), не очень смотрицца вообще-то....
ну не суть важно... зато работает)

   
 
 автор: SHAman   (07.09.2007 в 16:41)   письмо автору
 
   для: SHAman   (07.09.2007 в 16:30)
 

Намутил только это:
$reg = "/([^='\"])((ftp|https?):\/\/)([a-z0-9:\/?&=%#_.-]+)/i";

Но тогда текст взять в кавычки не получится...

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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