**[...] **- oznacza wycięty nic nie wnoszący do tematu tekst,
Uzywam funkcji dla BBCode:
function bbcode($in){
$in = nl2br($in);
$in = preg_replace('/\[b\](.+)\[\/b\]/sUi', '<strong>$1</strong>', $in);
$in = preg_replace('/\[i\](.+)\[\/i\]/sUi', '<i>$1</i>', $in);
$in = preg_replace('/\[u\](.+)\[\/u\]/sUi', '<span class="u">$1</span>', $in);
[...]
$in = preg_replace('/\[li\](.+)\[\/li\]/sUi', '<li>$1</li>', $in);
$in = preg_replace('/\[code\](.+)\s*\[\/code\]/sUi', '<pre>$1</pre>', $in);
$in = preg_replace('/\[quote\](.+)\s*\[\/quote\]/sUi', '<blockquote>$1</blockquote>', $in);
$in = str_replace('[hr]', '<hr>', $in);
//********************************************
$in = preg_replace('/\[img|([a-zA-Z0-9_ -]+)\]([^<]+)\[\/img\]/sUi', '<img src="'.IMG.'$2" class="$1">', $in);
//********************************************
$in = preg_replace('/\[url=((http|ftp|gg|mail|ssh|skype)[^\[]+)\]([^<]+)\[\/url\]/sUi', '<a href="$1">$3</a>', $in);
return $in;
}
Zmienilem tylko zaznaczoną linijke. Gdzie IMG to zdefiniowana stała określająca miejsce gdzie znajdują się zdjęcia.
define(IMG,SERVER.'images/');
Następnie mam odczyt z bazy danych newsa i wygląda to tak:
[...]
<?= bbcode($news["content"]); ?>
[...]
no i teraz dany news w bazie danych wygląda tak:
[...]
[img|left-float art-image span2]nazwa_pliku.jpg[/img]
[...]
I ładnie mi pokazuje dany obrazek jednak ... po sprawdzeniu FIREBUG'iem znajduje coś takiego:
[...]
<img class="" src="http://MOJADOMENA.PL/images/">
|
<img class="left-float art-image span2" src="http://MOJADOMENA.PL/images/nazwa_pliku.jpg">
[...]
Ma ktoś pomysł, dlaczego mi to dubluje ?