|
|
|
| yo братья, мне надо с preg_replace помоч.
допустим есть текст "текст ыыы [ /b] [ /b]"
и требуется получить "<b>текст</b> [ /b]"
подложите че нибудь, очень надо! | |
|
|
|
|
|
|
|
для: seitbekir
(11.02.2010 в 17:08)
| | смотрите в скриптах, как там обычно делается
здесь есть похожее
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=71133
, но я случайно там опечаток наделал ,) | |
|
|
|
|
|
|
|
для: 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];
};
};
?>
|
| |
|
|
|
|
|
|
|
для: 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\' потомучто там в шаблоне просто сгребает всё что не одинарные кавычки
// не проверял | |
|
|
|