Siemano, mam edytor, który konwertuje tekst na BBcode. Piszę do niego skrypt, który zamienia BBcode z bazy MySQL na znaczniki HTML. Większość już zrobiłem, ale mam problem z kilkoma znacznikami.
Tak wygląda kod tej funkcji zamiany
function BBCode($str){
$str = htmlspecialchars($str);
$str = nl2br($str);
// Odnośnik, otwieranie w nowym oknie
$str = preg_replace("#\[url\](.*?)?(.*?)\[/url\]#si", "<A HREF=\"\\1\\2\" TARGET=\"_blank\">\\1\\2</A>", $str);
// Odnośnik, otwieranie w nowym oknie, definiowanie treści odnośnika
$str = preg_replace("#\[url=(.*?)?(.*?)\](.*?)\[/url\]#si", "<A HREF=\"\\2\" TARGET=\"_blank\">\\3</A>", $str);
// Pogrubiony tekst
$str = preg_replace("#\[b\](.*?)\[/b\]#si", "<b>\\1</b>", $str);
// Pochylony tekst
$str = preg_replace("#\[i\](.*?)\[/i\]#si", "<i>\\1</i>", $str);
// strike
$str = preg_replace("#\[s\](.*?)\[/s\]#si",'<s>\\1</s>',$str);
//obrazek
$str = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" />',$str);
//wyznaczanie
$str = preg_replace("#\[ul\](.*?)\[/ul\]#si",'<ul class="lista">\\1</ul>',$str);
$str = preg_replace("#\[li\](.*?)\[/li\]#si",'<li>\\1</li>',$str);
//cytat
$str = preg_replace("#\[quote\](.*?)\[/quote\]#si","<blockquote>\\1</blockquote>",$str);
//tabela
$str = preg_replace("#\[table\](.*?)\[/table\]#si", "<table class='admin'>\\1</table>", $str);
$str = preg_replace("#\[td\](.*?)\[/td\]#si", "<td>\\1</td>", $str);
$str = preg_replace("#\[tr\](.*?)\[/tr\]#si", "<tr>\\1</tr>", $str);
// Wysrodkowany
$str = preg_replace("#\[center\](.*?)\[/center\]#si", "<center>\\1</center>", $str);
// Podkreślony tekst
$str = preg_replace("#\[u\](.*?)\[/u\]#si", "<u>\\1</u>", $str);
// Pomniejszanie tekstu
$str = preg_replace("#\[sm\](.*?)\[/sm\]#si", "<small>\\1</small>", $str);
// Powiększanie tekstu
$str = preg_replace("#\[big\](.*?)\[/big\]#si", "<big>\\1</big>", $str);
// Akapit
$str = preg_replace("/\[p\](.*?)\[\/p\]/si", "<p>\\1</p>", $str);
// Akapit z wyrównaniem
$str = preg_replace("#\[p=(http://)?(.*?)\](.*?)\[/p\]#si", "<p align=\"\\2\">\\3</p>", $str);
return($str);
}
A teraz te znaczniki z którymi mam problem:
[img=SZEROKOSCxWYSOKOSC] [/img] (np. [img=400x400]logo1.png[/img]
[font=NAZWA CZCIONKI]Treść[/font](np. [font=Arial Black]Treść[/font])
[size=WIELKOSC CZCIONKI]Tresc[/size] (np. [size=5]Wielkosc [/size])
[color=KOLOR HTML]Kolor z palety[/color] (np. [color=#9999cc]Kolor z palety[/color])
Chciałbym je dodać do tej samej funkcji, ale mam problem z wpisywaniem np. nazwy czcionki czy rozmiaru. Tzn na sztywno np <font size="2"></span> mi działa , ale nie wiem jak podstawić zmienną. Pomożecie?