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

Форум PHP

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

 

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

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

тема: [img]-><img>
 
 автор: Mootch   (24.11.2005 в 01:39)   письмо автору
 
 

Нужно из строки "[img]www.sitename.ru/img.jpg[/img]" получить "<img src=www.sitename.ru/img.jpg">

как это сделать?
заранее благодарен.

   
 
 автор: goddamn   (24.11.2005 в 02:21)   письмо автору
 
   для: Mootch   (24.11.2005 в 01:39)
 

<?
substr_replace
("[img]","<img src=\"");
substr_replace("[/img]","\">");
?>

   
 
 автор: Mootch   (29.11.2005 в 01:22)   письмо автору
 
   для: goddamn   (24.11.2005 в 02:21)
 

а если надо заменить, например такое:
{url=xxx}text{/url} в <a href=xxx>text</a>
как быть?

   
 
 автор: Бамси   (29.11.2005 в 02:31)   письмо автору
 
   для: Mootch   (29.11.2005 в 01:22)
 


<? 
substr_replace
("{url=","<a href="); 
substr_replace("{/url}","</a>"); 
?>

   
 
 автор: Shorr Kan   (29.11.2005 в 05:56)   письмо автору
 
   для: Бамси   (29.11.2005 в 02:31)
 

Почти. Там, все-таки, есть и } ...



<? 
$row
="{url=xxx}text{/url}";
$row=str_replace("{url='","<a href=",$row); 
$row=str_replace("{/url}","</a>",$row); 
$row=str_replace("}","'>",$row); 
?> 

   
 
 автор: Mootch   (29.11.2005 в 11:19)   письмо автору
 
   для: Shorr Kan   (29.11.2005 в 05:56)
 

т.е. с помощью регулярных выражений вы категорически мне не рекомендуете юзать? =)

   
 
 автор: cheops   (29.11.2005 в 13:06)   письмо автору
 
   для: Mootch   (29.11.2005 в 11:19)
 

Нет от чего же, можно и регулярными выражениями воспользоваться
<?php
    $postbody 
preg_replace("#\[url\][\s]*([\S]*)[\s]*\[\/url\]#si",'<a href="\\1" target=_blank>\\1</a>',$postbody);
?>

PS Регулярные выражения традиционно обсуждаются в разделе Регулярные выражения

   
 
 автор: cheops   (29.11.2005 в 13:09)   письмо автору
 
   для: Mootch   (29.11.2005 в 11:19)
 

Хотя для приведённого выше варианта <a href=xxx>text</a> больше подойдёт
<?php
    $postbody 
preg_replace("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU",
                             
'<a href="\\1" target=_blank>\\2</a>',
                             
$postbody);
?>

   
 
 автор: Void   (29.11.2005 в 19:31)   письмо автору
 
   для: cheops   (29.11.2005 в 13:09)
 

Регвырами нельзя обрабатывать перекрестные теги. Это главный недостаток.

   
Rambler's Top100
вверх

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