PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe bei ereg_replace, preg_replace ...


Mike105
19.04.2003, 13:36:44
Ich wollte eigentlich mal das system von mysql gestützten BB-Codes verstehen, und musste feststellen, dass ich mit dme kompletten ereg_replace und preg_replace nicht zurecht komme (ich kenne nicht einmal wirklich den unterschied nur dass preg_replace wohl schneller zu sein scheint und perl kompatibel ist ?!)

Hab mir mal ein wbb runtergeladen und lokal installiert um mir die bbcodes mal anzuschauen und blicke nicht durch wie die die codes durch das HTML ersetzen.

Codes mit einem parameter sind an sich kein problem.


nur wenn es dann an mehrere parameter geht wie bei URLs geht, beißt es einfach aus.

Kann mir mal einer sagen wo ich ein gutes Tutorial für die möglichkeiten von preg_replace und ereg_replace finde ?

damit ich eben ausdrücke wie:


$text = preg_replace("/(.*)/U", "<i>$1</i>", $text);


verstehen kann ?!

Danke schonmal !

doudie
19.04.2003, 15:59:25
wenn z.B.:
$text = "ich finde sex geil";

dann machst Du:
$text = preg_replace("sex", "zensiert", $text);

Dann ist der Text so:
$text = "ich finde zensiert geil";

Du tauscht also das eine Wort "sex" gegen das andere Wort "zensiert" aus.
Bei deinem Code wird halt alles (durch das .*) was man im Text zwischen den uBB-Codes [ i ] bal bla [ / i ] schreibt dann in
die entsprechenden HTML-Tags umgewandelt. <i> bal bla </i>

siehe auch mal da: Allgemeines PHP-Forum - UBB-Codes (http://www.selfphp.info/forum/forum/showthread.php?s=&threadid=4019)

Mike105
19.04.2003, 17:45:57
Hehe :) soweit bin ich ja auch schon ... habe es bis jetzt per PHP datei folgender maßen (ist ein auszug) :


$fontarray = array(1=>"comic sans ms", 2=>"courier new", 3=>"tahoma", 4=>"times new roman", 5=>"verdana");

// Schriftart ersetzen
foreach ($fontarray as $var)
$msg = str_replace("","<font face='".$var."'>",$msg);
$msg = str_replace("","</font>",$msg);


Nur verstehe ich den genauen Hintergrund von:


$patter = array("|(.*)|Ui","|(.*)|Ui");
$replace = array("<b>1</b>","<font size="1">2</font>");
$str = preg_replace($patter,$replace,$str);


nicht :) vor allem das aus dem $patter array werde ich nicht schlau und darum gings mir eigentlich *G*.

|Coding
19.04.2003, 18:20:50
ist doch einfach, das $patter und $replace array sind mit jeweils zwei values geladen. das ganze kommt sicherlich aus einer schleife, in welche das $str array - auch mit zwei values - noch includiert ist. somit wir für jeden string aus $str array der richtige relpace vorgang erledigt.

Mike105
19.04.2003, 21:51:43
hm ich rede wohl zu undeutlich :)
ich meinte den inhalt von dem array:
("|(.*)|Ui","|(.*)|Ui")
warum steht da ein | vor dem ubb code usw ... und was heißt das Ui"," ...

doudie
20.04.2003, 12:55:48
vielleicht ist das | Zeichen ein Trenmner-Zeichen, wobei es mit | beginnt und und das Ui schließt es ab.

("|WERT1Ui", "|WERT2Ui", "|WERT3Ui", "|....Ui")

und das macht möglich auch Sonderzeichen in Variablen zu verarbeiten
so wie z.B. " oder $ oder [ usw.... die sonst als PHP-Script-Teile und nicht als "text" interpretiert werden würden....

$xyz = "999";
$string = "der Wert von $xyz ist: " . $xyz;

Ausgabe von $string ist dann:
der Wert von $xyz ist 999

schau doch mal hier: Information zu replace im Entwickler Forum (http://www.selfphp.info/forum/forum/showthread.php?s=&threadid=4021)
... da steht glaub ich was das Ui ist .....

Mike105
20.04.2003, 13:47:47
danke euch :) mir wurde mittlerweile geholfen:
Bei Self-HTML (http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm) gibts Infos dazu.

das hatte ich gesucht :)