BBCodes mitsamt Inhalt filern - wie?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausdruck
beschreibung
buchstabe
code
dank
ergebnis
ersetzen
ersetzt ausgabe
fest vorgegebene strings
http
internet
kleine vorschau
latein
point
punkt
suchen
test
text
url
wahr url
-
Hallo,
ich steh schon wieder mit meinem Latein an. Wie ich mein Problem Google (Suchebrgriffe) weiß ich nicht, da ich üblicherweise immer mit
nur fest vorgegebene Strings ersetze, allerdings ist das nun nicht so. Um auf den Punkt zu kommen, ich will ausstr_replace();
einfach alles weglöschen... Grund hierfür ist der, dass ich auf der Startseite meiner Homepage eine kleine Vorschau für die Tests einbauen will, und dafür ledeglich der Text, der nicht in BB Codes steht ausgegeben werden soll. Das schlimme ist, dass ich die richtige Lösung bereits einmal irgendwo im Internet gelesen habe, nur nicht gefunden habe, da mein Gedächtniss nicht mehr will *hmpf*[points]1[/points] oder zb: [b]Text[/b]
Das sah in etwa so aus:
(Soll absolut jeden BBCode durch nichts ersetzen, also löschen)preg_replace("[".(*)."]".(*)."[/".(*)."]", "", $source);
Vielen Dank für die Antworten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
preg_replace('~\[\w\](.*)\[/\w\]~uim',' ',$source);
sollte funktionieren.
Zur Beschreibung: der Ausdruck sucht nach [nur Buchstaben]irgendwas[/nur Buchstaben] egal ob groß oder klein, über mehrere Zeilen und ist gierig. -
Danke, es geht tatsächlich, allerdings nur eingeschränkt. (siehe)
die
Die einstelligen BBCodes werden entfernt, allerdings nicht mehrstellige. Ich weiß nun wonach ich suchen muss, danke dir Aber den Pattern werde ich noch ein wenig anpassen müssen (das wird dauern, da ich von Pattern Syntax keine Ahnung habe, aber ich lerne gerne dazu )[b]test[/b]
EDIT: Endlich das Ergebnis:
(Funktioniert nun mit beliebig langen BBCodes)<?php $source = "[b]Huhu[/b] Nicht ersetzbar, solche [i]Text[/i]e, nicht [points]1[/points] wahr? [url]http://example.com[/url]"; $ausgabe = preg_replace('#\[(.*)\](.*)\[/(.*)\]#Uis', '', $source); echo '<b>Original</b>: '.$source.'<br />'; echo '<b>Ersetzt</b>: '.$ausgabe; ?>
Auf die richtige Lösung hat mich regexp-evaluator.de gebracht, aber ohne tct wäre ich bereits am googeln gescheitert, danke dir nochmal
Beitrag zuletzt geändert: 29.4.2011 20:38:41 von limabone -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage