|
|
|
| Как это сделать и после заменить bb теги на заданные мной? Я пишу форум и мне надо вынять текст меж тегов [code\][/code] и [url\][/url].
я пытаюсь сделать так, например
$_POST['txt'] = trim(htmlspecialchars(stripslashes(mysql_escape_string($_POST['txt']))));
preg_match_all("|\[url\]([\S].*)\[\/url\]|isU", $_POST['txt'], $out);
unset($out[0]);
foreach ($out as $index => $url)
{
echo change_tags($_POST['txt']);
}
echo"<br><br><br><hr>";
$text = change_tags($_POST['txt']);
echo $text;
function change_tags($txter)
{
str_replace("[url]", "<b>", $txter);
str_replace("[/url]", "</b>", $txter);
return $txter;
}
|
| |
|
|
|
|
|
|
|
для: Lelik
(05.08.2006 в 18:45)
| |
<?
$pattern = '|\[url\]([^\[]*)\[/url\]|is';
preg_match_all($pattern, $_POST['txt'], $out);
?>
|
но это выражение не будет работаь если будут вложенные bb-теги.
Это актуально при разборе тегов типа [cite][/cite] | |
|
|
|
|
|
|
|
для: Axxil
(05.08.2006 в 19:13)
| | меня больше интересует - это как эти данные потом вывести в ХТМЛ?
например теги [ url ] заменить на <a href="">и в него(тэг а) заключить данные введенные между тегами урл | |
|
|
|
|
|
|
|
для: Lelik
(05.08.2006 в 21:02)
| |
<?
$pattern = '|\[url\]([^\[]*)\[/url\]|is';
echo preg_replace($pattern,'<a href="\\1">ссылка</a>',$message);
?>
|
только в этом случае надо следить если ссылка будет начинаться на www то ссыка будет выглядеть не так (как, посмотрите на этом форуме, выделив в сообщении тегами url например www.ya.ru)
Для решения этой проблемы надо сначала выдёргивать ссылки с помощью preg_maych_all , потом приводить их в нормальный вид, и втыкать на место | |
|
|
|
|
|
|
|
для: Axxil
(06.08.2006 в 15:52)
| | >Для решения этой проблемы надо сначала выдёргивать ссылки с
>помощью preg_maych_all , потом приводить их в нормальный
>вид, и втыкать на место
А как вот это сделать? я пытался, но циклом форич выводит вместо содержимого меж тегов слово Array. Как мне эти данные в нормальный вид привести? | |
|
|
|
|
|
|
|
для: Lelik
(07.08.2006 в 00:04)
| | Содержимое тегов хранится в массиве $out[1]
Вот его и надо подставлять в цикл. | |
|
|
|
|
|
|
|
для: Axxil
(07.08.2006 в 01:00)
| | А можно наглядный, работающий пример? | |
|
|
|
|
|
|
|
для: Lelik
(07.08.2006 в 22:39)
| | Так попробуйте:
<?
$pattern = '|\[url\]([^\[]*)\[/url\]|is';
preg_match_all($pattern,$sub,$out);
foreach($out[1] as $value){
if(strpos('http://',$value)===false) $url .= 'http://'.$value;
else $url = $value;
$message = str_replace($value,$url,$message);
}
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(08.08.2006 в 11:49)
| | Очень благодарю :) | |
|
|
|