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

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

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

 

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

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

тема: ВВ
 
 автор: seitbekir   (11.02.2010 в 17:08)   письмо автору
 
 

yo братья, мне надо с preg_replace помоч.

допустим есть текст "текст ыыы [ /b] [ /b]"
и требуется получить "<b>текст</b> [ /b]"

подложите че нибудь, очень надо!

  Ответить  
 
 автор: heed   (11.02.2010 в 17:53)   письмо автору
 
   для: seitbekir   (11.02.2010 в 17:08)
 

смотрите в скриптах, как там обычно делается
здесь есть похожее
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=71133
, но я случайно там опечаток наделал ,)

  Ответить  
 
 автор: seitbekir   (11.02.2010 в 18:32)   письмо автору
 
   для: heed   (11.02.2010 в 17:53)
 

с этим понятно, теперь мне интересно как ближайший поменять

[ size='6']text[ url='http://ucoz.ru']My Webpage [/url][ /size]
дает
<font name="size" size="6']text[ url='http://ucoz.ru">My Webpage[ /url]</font>


а скрипт:
<?
if(eregi("\[url=\'(.*)\'\]",$text) and eregi("\[/url\]",$text)){
$text_5 explode('[url='$text);
$lim_5 count($text_5);
$text $text_5[0];
$limit '\1';
for(
$i=1;$i<$lim_5;$i++){ 
$text_5[$i] = preg_replace("|\'(.*)\'\](.*)\[\/url\]|""<a href=\"$1\">$2</a>"$text_5[$i]);                                    
$text .= $text_5[$i];
};
};
?>


<?
if(eregi("\[size=\'(.*)\'\]",$text) and eregi("\[/size\]",$text)){
$text_5 explode('[size='$text);
$lim_5 count($text_5);
$text $text_5[0];
$limit '\1';
for(
$i=1;$i<$lim_5;$i++){ 
$text_5[$i] = preg_replace("|\'(.*)\'\](.*)\[\/size\]|""<font name=\"size\" size=\"$1\">$2</font>"$text_5[$i]);                                    
$text .= $text_5[$i];
};
};
?>

  Ответить  
 
 автор: heed   (11.02.2010 в 19:35)   письмо автору
 
   для: seitbekir   (11.02.2010 в 18:32)
 

точно так-же, просто прохождение текста несколько раз, разные вложенные теги заменятся
, чтобы заменять одинаковые вложенные, придётся прогонять текст много раз по много раз
<?
$text 
preg_replace(
array(
'#\[url=\'([^\']+)\'\](.+?)\[/url\]#''#\[size=\'(\d+)\'\](.+?)\[/size\]#' ),  // ......
array('<a href=\'$1\'>$2</a>''<font size="$1">$2</font>' ),   // ...........
 
$text);

, но с url что-то не так, остаётся возможность вставлять href="javascript:чего-нибудь"
и href=\'$1\' потомучто там в шаблоне просто сгребает всё что не одинарные кавычки

// не проверял

  Ответить  
Rambler's Top100
вверх

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