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

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

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

 

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

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

тема: Преобразование url
 
 автор: antf   (02.10.2006 в 12:27)   письмо автору
 
 

Можно ли составить регулярное выражение, которое преобразовывало url (полный url) вида :


http://cmsproteus/index.php?gl_page=forum_posts_list&id_for=1&id_theme=8&for_t_part=0&for_p_part=1

в такую конструкцию

<a href='{полный url}' target='_blank'>{краткий url}</a>


Краткий url может выглядеть так:
http://cmsproteus/index.php?gl...

Дело в том, что особо длинные url портят дизайн. В одном популярном форуме (не помню каком) это реализовано.

Заранее спасибо.

   
 
 автор: cheops   (02.10.2006 в 14:42)   письмо автору
 
   для: antf   (02.10.2006 в 12:27)
 

Длинные URL сейчас входят в состав тэга <a> или просто URL в тексте?

   
 
 автор: antf   (02.10.2006 в 17:58)   письмо автору
 
   для: cheops   (02.10.2006 в 14:42)
 

Длинный - для тега, короткий - для дизайна :)

   
 
 автор: AlexSol   (02.10.2006 в 19:24)   письмо автору
 
   для: antf   (02.10.2006 в 17:58)
 

я немного в курсе, так что уточню - просто URL в тексте

   
 
 автор: kasmanaft   (02.10.2006 в 19:25)   письмо автору
 
   для: antf   (02.10.2006 в 17:58)
 

В тексте, который имеется, URL'ы в тегах или просто текстом ? :)

   
 
 автор: AlexSol   (02.10.2006 в 19:34)   письмо автору
 
   для: kasmanaft   (02.10.2006 в 19:25)
 

давайте так попробуем :
из <a href='http://www.textpattern.ru/forum/help.php#bbcode' target='_blank'>http://www.textpattern.ru/forum/help.php#bbcode</a>

сделать <a href='http://www.textpattern.ru/forum/help.php#bbcode' target='_blank'>http://www.textpattern.ru</a>

//усложним задачу - оставить в коротком варианте только домен.

   
 
 автор: kasmanaft   (02.10.2006 в 20:07)   письмо автору
 
   для: AlexSol   (02.10.2006 в 19:34)
 

Эх... =))
Не уверен, что оно будет работать на отлично .. тестим :)

<?php
$text 
"text blablabla <a href='http://www.textpattern.ru/forum/help.php#bbcode' target='_blank'>http://www.textpattern.ru/forum/help.php#bbcode</a> text blablabla";
echo 
preg_replace ("#(<a[\s]+href=['\"]?)(http://)?([^/'\"]+)([^'\"]*?)(['\"]?.*?>).*?</a>#i""$1$2$3$4$5$3</a>"$text);
?>

.. сам потестил - вроде норм ...

   
 
 автор: antf   (03.10.2006 в 11:06)   письмо автору
 
   для: kasmanaft   (02.10.2006 в 20:07)
 

Отличную идею подсказал AlexSol. А это регулярное выражение натолкнуло меня на интересную мысль. Я решил сделать так

<?
  $pattern 
"#\[url\](http://[^/]+)(.*?)\[/url\]#is";
  
$replace "<a href='$1$2' target='_blank'>$1</a>";
  
$post    preg_replace($pattern$replace$post);
?>

   
Rambler's Top100
вверх

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