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

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

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

 

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

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

тема: Замена ссылки при помощи preg_replace
 
 автор: amigo62   (02.11.2007 в 13:01)   письмо автору
 
 

Здравствуйте, форумчане! Имеется код, заменяющий http://site(ссылка) на <a href="http://site">ссылка</a>:
<code><?
$find[]="/http\:\/\/(.+?)\((.+?)\)/si";
$replacement[]="<a href=\"http://$1\">$2</a>";
$text=preg_replace($find,$replacement,$text);
?></code>
можно ли как-нибудь изменить так, чтобы http://site(ссылка_на_сайт) менялось на <a href="http://site">ссылка на сайт</a> (т. е. в тексте ссылки "_" заменить на пробелы)?

   
 
 автор: Faraon   (02.11.2007 в 15:34)   письмо автору
 
   для: amigo62   (02.11.2007 в 13:01)
 

Типа такого

<?
$text
="http://site.ru(сайт_ссылка)";
$find[]="/http\:\/\/(.+?)\((.+?)\)/si";
$text=str_replace("_"," ",$text);
$replacement[]="<a href=\"http://$1\">$2</a>";
$text=preg_replace($find,$replacement,$text);
print 
$text;
?>

   
 
 автор: EXP   (02.11.2007 в 16:48)   письмо автору
 
   для: amigo62   (02.11.2007 в 13:01)
 

ещё можно применить модификатор "e"
<?
$find
[] = "/http\:\/\/(.+?)\((.+?)\)/sie" ;
$replacement[] = "'<a href=\"http://\$1\">' . str_replace('_', ' ', '\$2') . '</a>'" ;
echo 
$text preg_replace($find$replacement'site.ruhttp://site(ссылка_на_сайт)') ;
?>

   
 
 автор: amigo62   (02.11.2007 в 18:20)   письмо автору
 
   для: EXP   (02.11.2007 в 16:48)
 

Faraon, вот в том -то и дело, что $text может содержать кроме ссылки массу всякой всячины, в т. ч. и символы "_", которые не требуют замены... EXP, Ваш вариант подходит=) Всем спасибо за ответы)

   
Rambler's Top100
вверх

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