Vollständige Version anzeigen : [PHP] bb-codes - so geht's


t-low
09.06.2007, 20:04

Ich wollte mal n bisschen was darüber schreiben, wie man bb-codes am besten löst.
Also...
Als erstes mal ein stinknormales formular, wo der benutzer eine nachricht eingben kann, mit BB-Codeds:

<?
// index;php
print "
<html>
<head>
<title>BB </title>
</head>
<body>
<form action=auswertung;php method=post>

<textarea name=message>
Hier nachricht mit bb-codes eingeben
</textarea>
<input type=submit>
</form>

<body>
</html>
";
?>


ok, bis jetzt haben wir nur ein formular, da snichts macht, also brauchen wir jetzt die auswertung;php


<?
//auswertung;php

$msg = $_POST['message']; // die nachricht übernehmen

print $msg;

?>

Sooo, jetzt müsste das script die eingetippte nachricht ausgeben, aber ohne irgendwelche formatierungen...
also müssten wir als erstes dafür sorgen, dass zeilenumbrüche ausgegeben werden, das geht so:


//...
$nz = chr(13);chr(10); //zeilenumbrüche suchen und dur $nz ersetzen
$msg = str_replace($nz, "<br>" ,$msg); // $nz durch <br> ersetzen
//...



wenn wir das vor das print $msg; einsetzen, erhalten wir eine ausgebe mit zeilenumbrüchen, wo wir welche gemacht haben
Jetzt gwehen wir davon aus, dass wir zb. text schreiben und text (<b>text</b>) erhalten könnten wir ja wie folgtr schreiben

$msg = str_replace("", "<b>", $msg);
$msg = str_replace("", "<b>", $msg);
//usw..


Aber was passiert, wenn der benutzer jetzt das b groß schreibt... dann würde das ganze script nich funktionieren! Aber dafür hat php eine funktion, nämlich preg_replace (;de;php~net/preg_replace)
Sie wird wie folgt angewand:

$msg = preg_replace("!\[b\](;*)\[/b\]!isU","<b>$1</b>",$msg);

so, wenn wir das einfügen müssteb b-tags funktionieren
das geht natürlich genause mit i (kursiv) und u(unterstrichen) uns s (durchgestrichen ):

$msg = preg_replace("!\[u\](;*)\[/u\]!isU","<u>$1</u>",$msg);
$msg = preg_replace("!\[i\](;*)\[/i\]!isU","<i>$1</i>",$msg);
$msg = preg_replace("!\[s\](;*)\[/s\]!isU","<s>$1</s>",$msg);


WEnn wir jetzt auch noch formatierungsmöglichkeiten reinbringen wollen können wir es nach fast dem glaichen prinzip machen:


$msg = preg_replace("!\[center\](;*)\[/center\]!isU","<center>$1</center>", $msg);
$msg = preg_replace("!\[left\](;*)\[/left\]!isU","<div align=left>$1</div>",$msg);
$msg = preg_replace("!\[right\](;*)\[/right\]!isU","<div align=right>$1</div>",$msg);


genausoleich t ist das mit img- und url tags :


$msg = preg_replace("!\[url\](;*)\[/url\]!isU","<a href=\"$1\" target=\"_blank\">$1</a>",$msg);
$msg = preg_replace("!\[img\](;*)\[/img\]!isU","<img src=\"$1\" alt=$1>",$msg);


bei den url= - und color-tags is das ganze ein bisschen anders, weil 2 stellen vorkommen, bei denen ein wert ausgelesen wird:


$msg = preg_replace("!\[color=(;*)\](;*)\[/color\]!isU","<span style=\"color:$1;\">$2</span>",$msg); //dabei ist $1 die farbe und $2 der farbige text

$msg = preg_replace("!\[url=(;|;|;;)(;*)\](;*)\[/url\]!isU","<a href=\"$1$2\" target=\"_blank\">$3</a>",$msg);



und so könnt ihr alle möglichen codes bauen zum beispiel bei einem spie [player] tags, die einen link auf das benutzerprofil geben sollen

$msg = preg_replace("!\[player\](;*)\[/player\]!isU","<a href=usersuche;php?search=$1>$1</a>",$msg);



So jetzt fasse ich die auswertung;php nochmal zusammen:

//auswertung;php
<?
//auswertung;php
$msg = $_POST['message']; // die nachricht übernehmen

$nz = chr(13);chr(10); //zeilenumbrüche suchen und dur $nz ersetzen
$msg = str_replace($nz, "<br>" ,$msg); // $nz durch <br> ersetzen

$msg = preg_replace("!\[b\](;*)\[/b\]!isU","<b>$1</b>",$msg); //fett
$msg = preg_replace("!\[u\](;*)\[/u\]!isU","<u>$1</u>",$msg); //unterstrichen
$msg = preg_replace("!\[i\](;*)\[/i\]!isU","<i>$1</i>",$msg); //kursiv
$msg = preg_replace("!\[s\](;*)\[/s\]!isU","<s>$1</s>",$msg); //durchgesrtichen
$msg = preg_replace("!\[center\](;*)\[/center\]!isU","<center>$1</center>", $msg);//zentriert
$msg = preg_replace("!\[left\](;*)\[/left\]!isU","<div align=left>$1</div>",$msg); // linksbündig
$msg = preg_replace("!\[right\](;*)\[/right\]!isU","<div align=right>$1</div>",$msg); // rechtsbündig
$msg = preg_replace("!\[url\](;*)\[/url\]!isU","<a href=\"$1\" target=\"_blank\">$1</a>",$msg);
$msg = preg_replace("!\[img\](;*)\[/img\]!isU","<img src=\"$1\" alt=$1>",$msg);
$msg = preg_replace("!\[color=(;*)\](;*)\[/color\]!isU","<spanstyle=\"color:$1;\">$2</span>",$msg);
$msg = preg_replace("!\[url=(;|;|;;)(;*)\](;*)\[/url\]!isU","<a href=\"$1$2\" target=\"_blank\">$3</a>",$msg);



print $msg;

?>





So.. das wars, ich hoffe ich hab euch geholfen, aber wenn nich, dann kopiert ihr einfach die auswertung und benutzt sie wie sie is. wenn ihr fehler findet, schreibt bitte ne pm an mich!(am besten mit lösung)

ich hoffe, es nützt euch

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [PHP] bb-codes - so geht's
  • Handy-Codes
    Wollt hier ma nen Tread eröffnen der auf die "geheimen Münes" der Handy hersteller verweißst. Also mir is das jetzt nur von Sony Ericson bekannt vlt kennt ihr ja noch andere ?! Mit der Tastenkombination >*<<*<* kommt ihr bei Sony Ericsson in ein verstecktes Service-Menü . [...]

  • Viaccess Codes
    Kennt sich jemand mit Viaccess Codes aus? Bzw. wie überspielt man diese auf seinen Receiver? Kenn mich in diesem Bereich gar nicht aus, wäre für weitere Hilfe sehr dankbar. Hoffe das ich mit dem Thema hier richtig bin, ansonsten bitte verschieben. [...]

  • FileUpload Codes ...
    Hey, Erst mal ich habe mein "eignes" Webspace Server... sowas wie funpic... Zweitens ich besitze kaum Programmierkenntnisse in dem Web zeugs... Ich würde gerne das andere User auch was hochladen können. Aber die Datei soll in einem Bestimmt Ordner abgelegt werden. Kann mir jemand den Code s [...]

  • Premiere-Codes
    Hallo liebe RR-ler, bin auf der Suche nach den neuen Premiere-Codes, sollten ja langsam mal draußen sein :P BW für hilfreiche Beiträge ist klar;) Mfg jow. [...]



raid-rush.ws | Imprint & Contact pr