HTML in BB-Codes umwandeln
von
SmaX |
11.06.2009 um 21:07 h
Typ: Skripte
Stufe:Nur für Fortgeschrittene
Hallo,
Diese PHP-Funktion ist für z.B. Foren oder Mitgliederbereiche gedacht, inder man eine Bearbeitungsfunktion mit BB-Codes verwendet. Denn wenn man in Forum einen Beitrag bearbeiten will, und BB-Codes im Spiel sind, wandelt die Funktion die in der Datenbank gespeicherten HTML-Codes wieder in BB-Codes um sodass der User das Thema mit BB-Codes und NICHT in HTML bearbeiten kann. Soo, und jetzt genug geredet, hier der Code:
<?php
function postback($string) { // Wandelt HTML wieder in BB-Codes um
$string = str_replace("<br>", "\n",$string); // Wandelt Zeilenumbrüche
um
$string = str_replace("<br/>", "\n",$string);// Wandelt Zeilenumbrüche
nochmal um
$string = str_replace("<br />", "\n",$string);// Wandelt nocheinmal
Zeilenumbrüche um
$string = str_replace("<b>", "<b>",$string); // Wandelt Fettdruck in
BB-Code um
$string = str_replace("</b>", "</b>",$string);// Wandelt Fettdruck in
BB-Code um
$string = str_replace("<u>", "<u>",$string);// Wandelt Unterstreichung
in BB-Code um
$string = str_replace("</u>", "</u>",$string);// Wandelt
Unterstreichung nochmal in BB-Code um
$string = str_replace("<i>", "<i>",$string); // Wandelt Kursivschrift
in BB-Codes um
$string = str_replace("</i>", "</i>",$string);// Wandelt Kursivschrift
nocheinmal in BB-Codes um
$string = str_replace("<small>", "[small]",$string);// Wandelt
Kleinschrift in BB-Codes um
$string = str_replace("</small>", "[/small]",$string);//Wandelt
Kleinschrift in BB-Codes um
$string = str_replace("<h3>", "[big]",$string);//Wandelt sehr große
Schrift in BB-Codes um
$string = str_replace("</h3>", "[big]",$string);//Wandelt ser große
Schrift in BB-Codes um 2
$string = str_replace("<a h", "[",$string);//Wandelt 1. Teil des Links
um
$string = str_replace("ref='", "url=",$string);//Wandelt 2.Teil des
Links um
$string = str_replace("'>", "]",$string);//Wandelt 3.Teil des Links um
$string = str_replace("</a>", "",$string);// Wandelt letzten
Teil des Links um
return $string; }
?>
Hier nochmal die PHP-Funktion "postback" in Einzelteilen:
Zuerst wird die Funktion mit
function postback($string) {
eingeleitet. $string ist der Text wo übergeben wird.
Jetzt wollen wir alle HTML-Codes die in der DB gespeichert sind, wieder in BB-Codes umwandeln, sodass der User kein HTML können muss. Das geschieht mit
str_replace
Im Ersten Teil der str_replace Funktion gibt man die Zeichen an, nachden gesucht werden soll (In Anführungszeichen) und im Zweiten Teil der Funktion gibt man (auch in Anführungszeichen) an was dadurch ersetzt werden soll, zuletzt nochmal die Zeichenkette, die durchsucht werden soll.
Das Habe ich jetzt bei allen im normalen BB-Code enthaltenen Zeichen gemacht und zuletzt wird (Was bei PHP-Funktionen üblich ist) ein Wert, und zwar unsere bereits "gefilterte" Zeichenkette zurückgegeben mit
return $string;}
und die Funktion wird mit einer geschweiften Klammer geschlossen. Ich hoffe es hat jetzt jeder soweit kapiert und hoffentlich kann es jemand gebrauchen.
Operation Tutorial überarbeiten ausgeführt
Die Funktion kann mit
echo postback($text);
aufgerufen werden. In eine Textarea kann man das also einfach einbauen:
<textarea rows="5" cols="15"><? echo postback($text);?></textarea>
Diese Funktion kann auch Links umwandeln, und befor ich jetzt angemotzt werde, wie komplex das ist: Ich weiß auch das viele Wege nach Rom führen und das ist einer dafon. Ich bin auch kein Informatiker, ich will einfach nur ein Skript bereitstellen, das ich persönlich oft brauche, und vielleicht andere auch. Für die FALSCHE Verarbeitung der PHP-Codes hier, kann ich leider nichts dafür.
Ich hoffe ihr könnt es gebrauchen.
MfG Smax
5 Kommentare
Fr34k
Äh, das Tutorial find ich gut erklärt, aber... bei b, i und u muss es da nicht im zweiten Teil heißen und nicht nochmal die geschweiften Klammern???