preg_replace()

deadline

Erfahrenes Mitglied
mal vorweg:
ich habe die forum suche benutzt
ich habe auf www.php.net geschaut
ich habe gegoogled

aber nichts helfendes gefunden...

es geht um preg_replace()

ich möchte so ne art bb oder hrc codes machen, allerdings mit etwas mehr funktionen.
auf php.net steht:
preg_replace(suche, ersetzung, string)

und: man kann referenzen verwenden (ich hab echt keine ahnung was das wieder ist, weil ich ein anfänger bin)

also es geht um das: ! {1} also das ganze programm...was bitte sind referenzen?

wär nett, wenn ihr mir helfen könnt, weil ich schon überall geschaut hab und da is mir des alles zu kompliziert...
danke

mfg
chris
 
Hi,
schreib mal bitte dazu wo du genau das her hast, damit man den Zusammenhang auch verstehen kann.

Die Funktion preg_replace wird meißt in dieser Art genutzt:

PHP:
$text = preg_replace("(\[b\](.+?)\[\/b])is,'<span class="bold">$1</span>',$text);

Dies ist jetzt einfach die Ersetzung der [ b ] und [ /b ] Codes durch HTML-Code, der den dazwischenliegenden Text fett erscheinen lässt.

Der erste Wert innerhalb des Funktionsaufrufes ist ein regulärer Ausdrück mit dem du die gewünschten dinge Filtern kannst.
Der zweite Wert ist der Code den du anstelle der BB-Codes haben möchtest.
Der dritte Wert ist der String der durchsucht werden soll.

Reguläre Ausdrücke sind schon nicht ohne und für Anfänger (...ich will jetzt nicht behaupten, dass du so einer bist!) nicht wirklich verständlich.
Aber du kannst mal hier unter den Tutorials gucken oder auch mal google nach regulären Sudrücken durchwühlen, da wirst du massig zu finden.
 
Zuletzt bearbeitet:
ich mein die referenzen (so stehts auf php.net)
da steht, mann kann referenzen zwischen 0 und 99 machen...
entweder \\0 oder $0
wofür brauch ich die?
 
Schau mal in mein Beispiel, da habe ich in dem zweiten Wert eine $1. Dies ist die Referenz für den Teil der von (.+?) im ersten Wert abgedeckt wird. Dies ist in meinem Fall der Text, der zwischen den Codes [ b ] und [ / b ] steht.

Und nochwas:
"Bitte achte auf eine korrekte Grammatik und Rechtschreibung (inkl. Groß-/ Kleinschreibung) und eine sinnvolle, klare Fragestellung bzw. Antwort. Mehr dazu findest Du in unserer Netiquette."
 
PHP:
<?php
$text = nl2br($text);
$text = preg_replace("(\[b\](.+?)\[\/b])is,'<b>$1</b>',$text); 
$text = preg_replace("(\[i\](.+?)\[\/i])is,'<i>$1</i>',$text); 
?>

ich hab jetzt die funktion übernommen (copy & paste) die variable $text kommt von einer vorseite, von einem mehrzeiligen textfeld (darum nl2br)
nur jetzt kommt das:

Parse error: parse error, unexpected '(' in /usr/export/www/vhosts/funnetwork/hosting/crazzytastatur/profil.php on line 4

was ist denn da falsch?
 
Du hast ein " in 2 Zeilen vergessen..
PHP:
<?php
$text = nl2br($text);
$text = preg_replace("(\[ b\](.+?)\[ \/b])is",'<b>$1</b>',$text); 
$text = preg_replace("([ i](.+?)[ /i])is",'<i>$1</i>',$text); 
?>
 
Zurück