Dublowanie wpisu przy używaniu BBCode

0

**[...] **- 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 ?

0
$in = preg_replace('/\[img\|([a-zA-Z0-9_ -]+)\]([^<]+)\[\/img\]/sUi', '<img src="'.IMG.'$2" class="$1">', $in);

poprawiona linijka

1 użytkowników online, w tym zalogowanych: 0, gości: 1