Mam taki problem z preg_replace(), że funkcja działa tylko wtedy tylko jak ciąg znaków jest tylko w jednej linii, a dokładniej:
Kod
[b]Blablalba[/b] (działa)
_________________
[b]blablabla
blalbabla[/b] (nie działa)
_________________
[b]blablabla
blalbabla[/b] (nie działa)
Może to wina (*.)?
Szukałem w wyszukiwarce google i niczego nie znalazłem.
Tutaj funkcja:
Kod
<?php
function bbcode($tekst) {
// podstawowe BBCODE
$tekst = preg_replace("/\[color=(red|green|blue)\](.*)\[\/color\]/i", "<span style=\"color: \\1;\">\\2</span>", $tekst);
$tekst = preg_replace("/\[b\](.*)\[\/b\]/i", "<span class=\"bold\">\\1</span>", $tekst);
$tekst = preg_replace("/\[u\](.*)\[\/u\]/i", "<span class=\"underline\">\\1</span>", $tekst);
$tekst = preg_replace("/\[i\](.*)\[\/i]/i", "<span class=\"italic\">\\1</span>", $tekst);
$tekst = preg_replace("/\[center\](.*)\[\/center]/i", "<div class=\"center\">\\1</div>", $tekst);
$tekst = preg_replace("/\[code\](.*)\[\/code]/i", "<code>\\1</code>", $tekst);
// zdjecia
$tekst = preg_replace("/\[img\](.*)\[\/img]/i", "<img src=\"\\1\" alt=\"\" />", $tekst);
// linki
$tekst = preg_replace("/\[url\](.*)\[\/url]/i", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $tekst);
$tekst = preg_replace("/\[url=(.*)\\](.*)\[\/url]/i", "<a href=\"\\1\" target=\"_blank\">\\2</a>", $tekst);
return $tekst;
}
$tekst="[b]blablabla[/b]\n[b]blablalba\nblablabla[/b]";
echo bbcode($tekst);
?>
function bbcode($tekst) {
// podstawowe BBCODE
$tekst = preg_replace("/\[color=(red|green|blue)\](.*)\[\/color\]/i", "<span style=\"color: \\1;\">\\2</span>", $tekst);
$tekst = preg_replace("/\[b\](.*)\[\/b\]/i", "<span class=\"bold\">\\1</span>", $tekst);
$tekst = preg_replace("/\[u\](.*)\[\/u\]/i", "<span class=\"underline\">\\1</span>", $tekst);
$tekst = preg_replace("/\[i\](.*)\[\/i]/i", "<span class=\"italic\">\\1</span>", $tekst);
$tekst = preg_replace("/\[center\](.*)\[\/center]/i", "<div class=\"center\">\\1</div>", $tekst);
$tekst = preg_replace("/\[code\](.*)\[\/code]/i", "<code>\\1</code>", $tekst);
// zdjecia
$tekst = preg_replace("/\[img\](.*)\[\/img]/i", "<img src=\"\\1\" alt=\"\" />", $tekst);
// linki
$tekst = preg_replace("/\[url\](.*)\[\/url]/i", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $tekst);
$tekst = preg_replace("/\[url=(.*)\\](.*)\[\/url]/i", "<a href=\"\\1\" target=\"_blank\">\\2</a>", $tekst);
return $tekst;
}
$tekst="[b]blablabla[/b]\n[b]blablalba\nblablabla[/b]";
echo bbcode($tekst);
?>
Pozdrawiam Lewy.