Loading...   Upload Image

BBCodeTutorials » PHP/MySQL Tutorials » BBCode

Verfasst von Lenox am 11.03.2010 - wurde schon 10974 mal gelesen

Kategorie: PHP/MySQL
Bewertung:
9x bewertet
Schwierigkeit: mittel
Kommentare: [ 7 ]

Tag - Schlagwort BBCode Tag - Schlagwort Formatierung Tag - Schlagwort PHP

BBCode - Tutorial

Hier erkläre ich euch in kurzen Schritten wie man einen BBCode aufbauen könnte!

Wir Beginnen:
(erstellt euch eine neue PHP-Seite)

';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '';
	$replace[] = '
Zitat:
'; $replace[] = '

'; $bb = str_replace($search, $replace, $bb); $search = array(); $replace = array(); $search[] = '/\[color=(.*?)\]/'; $search[] = '/\[size=(.*?)\]/'; $search[] = '/\[font=(.*?)\]/'; $search[] = '/\[email\](.*?)\[\/email\]/'; $search[] = '/\[email=(.*?)\](.*?)\[\/email\]/'; $search[] = '/\[url\](.*?)\[\/url\]/'; $search[] = '/\[url=(.*?)\](.*?)\[\/url\]/'; $search[] = '/\[img\](.*?)\[\/img\]/'; $replace[] = ''; $replace[] = ''; $replace[] = ''; $replace[] = ''; $replace[] = ''; $replace[] = ''; $replace[] = ''; $replace[] = ''; $bb = preg_replace($search, $replace, $bb); $offset = 0; while(strpos($bb, '[list]', $offset) !== false) { $pos = strpos($bb, '[list]', $offset); $end = strpos($bb, '[/list]', $pos); if($end === false) break; $list = trim(substr($bb, $pos + 6, $end - ($pos + 6))); $elements = explode('[*]', $list); $list = '
    '; for($i = 1; $i < count($elements); $i++) { $list .= '
  • '.nl2br(rtrim($elements[$i])).'
  • '; } $list .= '
'; $end += 7; $offset = $end; $bb = substr_replace($bb, $list, $pos, $end - $pos); } $offset = 0; while(strpos($bb, '[list=', $offset) !== false) { $pos = strpos($bb, '[list=', $offset); $pos2 = strpos($bb, ']', $pos + 6); $type = substr($bb, $pos + 6, $pos2 - ($pos + 6)); $end = strpos($bb, '[/list]', $pos2); if($end === false) break; $list = trim(substr($bb, $pos2 + 1, $end - ($pos2 + 1))); $elements = explode('[*]', $list); $list = '
    '; for($i = 1; $i < count($elements); $i++) { $list .= '
  1. '.nl2br(rtrim($elements[$i])).'
  2. '; } $list .= '
'; $end += 7; $offset = $end; $bb = substr_replace($bb, $list, $pos, $end - $pos); } $offset = 0; while(($pos = strpos($bb, '[code]0[/code]', $pos); if($end === false) break; $code = substr($bb, $pos + 6, $end - ($pos + 6)); $strlen = strlen($code) + 13; $code = '
'.str_replace('', '', $code).'
'; $end += 7; $offset = $end - ($strlen - strlen($code)); $bb = substr_replace($bb, $code, $pos, $end - $pos); } // Smilies $bb = eregi_replace(';)', ';)', $bb); return $bb; } ?>


Texte an die Funktion übergeben!

";

$message = bbcode($message);

echo $message; //Formatierter Text
?>


Mit "include("bbcode.php");" binden wir die Funktion ein

$message = "Ich bin ein Fetter Text der auch einen Link parat hat ;)";

Mit "$message = bbcode($message);" lassen wir den Text durch die Funktion laufen!

um bei Texten einen Zeilenumbruch anzeigen zu lassen der mit einer Enter-Taste im Textarea verfasst wurde sollte es dann so aussehen

";

$message = nl2br($message); //Hier wird der Text an den sogenannten Enter-Stellen (
) umgebrochen $message = bbcode($message); //Wir senden den Text an bbcode und lassen in arbeiten damit er den Text für uns umformatiert echo $message; //Formatierter Text ?>


Mit der Funktion nl2br() sagen wir das wir den Text über Quellcode mit <br /> übersehen wollen aber in der Ansicht sollte es ein unsichtbarer umbruch sein!

Man kann es beliebig erweitern wenn man möchte :)
Beispielsweise bei den Smilies ^^

Bei Fragen schreibt ruhig Kommentare

Kommentar schreibenHinterlasse einen Kommentar

Du musst angemeldet sein, um einen Kommentar zu hinterlassen...

Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...


Affiliates:   Pat DG  •   Blue-Graphics  •   The Seduction  •   Chibi Graphics  •   Design Grafixx  •   Colorful Gfx  •   Gallery Yuri  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider