Verständnissproblem bei ereg(i)_replace

Morph

Erfahrenes Mitglied
Hi Leudz,

Kurze Frage: Was bedeutet z.b.
Code:
$text = eregi_replace("[[:alpha:]+://[^<>[:space:]+[[:alnum:]","<a href=\"\\0\">\\0</a>", $text);
genau ? mir ist zwar klar, dass dort eine URL ersetzt wird, aber was genau diese [[:alpha ... bedeutet ist mir rätselhaft.
desweiteren würde ich gern wissen ob ich auch <img> tags durch dieses 'code-wirr-warr' irgendwie anders 'umschreiben' muss.

Danke im vorraus
Grüße, Morph
 
Hallo Morph,

das Code wirrwar was du gepostet hast, sind Regular Expressions. Also reguläre Ausdrücke. Diese werden verwenden um Textmuster zu durchsuchen.

Du kannst mit Regular Expressions, kurz RegEx, so ziemlich jedes Textmuster eines Strings finden, prüfen und ersetzten.

alpha bedeutet das sämtliche Zeichen des Alphabets sowei ein tiefstrich gefunden werden.

space bedeutet sämtliche Leerzeichen werden gefuden

alnum bedeutet das alle numeric Zahlen gefunden werden.

Dein Wirr War da macht im Prinzip nichts anderes als eine URL aus einem Text linkbar zu machen.

Du findest unter http://www.koehntopp.de/ eine sehr gute Doku zum Thema RegExpr die du dir unbedingt mal durchlesen solltest. Man weiss ja garnicht was für Möglichkeiten ich damit habe :D

Greez
Fati
 
So, nochmal eine Frage dazu, da ich erst jetzt dazu kam es mal zu probieren =).
Hab' schnell was geschrieben, in ein array umgeschrieben und voilá, es geht nicht.
Meine Frage lautet: warum nicht?
Code:
<?php
	$string = "[ b ]fett[ /b ]<br>[ i ]kursiv[ /i ]<br>[ u ]unterstrichen[ /u ]";
	$bb = array(
		0 => array(0 => "\[ b \]", 1 => "\[ /b \]", 2 => "<b>", 3 => "</b>")
	);
	$x = count($bb);
	for ($i=0; $i <= $x; $i++) {
		$string = eregi_replace("$bb[$i][0]","$bb[$i][2]",$string);
		$string = eregi_replace("$bb[$i][1]","$bb[$i][3]",$string);
	}
	echo $string;
?>
Geht bitte davon aus, dass ich kaum ahnung im Umgang mit RegEx' hab' =)

edit: mist, das Forum interpretiert meinen code als vB code und nicht als code snippet *grml*. Nunja, hier ist der code.

Grüße, Morph
 
Zuletzt bearbeitet:
Original geschrieben von Fatility
0 => array(0 => "\[b\]", 1 => "\[/b\]", 2 => "<b>", 3 => "</b>")
Lass mal hier die \ weg ...
Die \ hatte ich drin, da man sonderzeichen wie [ und ] mit einem backslash davor versehen muss ;)
Es funktionierte ja vorher mit \[b\], aber seit ich die schose in nen array geschrieben habe geht es nichtmehr - und ich hab' keinen Plan wieso.

Grüße, Morph
 
Zurück