4x bewertet

HTML in BB-Codes umwandeln

von SmaX  |  11.06.2009 um 21:07 h
Skripte
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???
am 26.11.2009 um 13:03 Uhr


Fr34k

Ich meine

<b>

beim zweiten
<b>

am 26.11.2009 um 13:23 Uhr


Fr34k

na toll, jetzt hab ich hier iwie die kommentare durcheinander gebracht, sry *g*
am 26.11.2009 um 13:24 Uhr


SmaX

Stimmt, habs ausgebessert!
am 26.11.2009 um 18:26 Uhr


SmaX

Ohh nein, wieder ein Fehler! Es steht richtig in der Bearbeitungsansicht, aber hier nicht!
Ich melde es an einen Admin
am 26.11.2009 um 18:27 Uhr