kostenloser Webspace werbefrei: lima-city


BBCodes mitsamt Inhalt filern - wie?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hallo,
    ich steh schon wieder mit meinem Latein an. Wie ich mein Problem Google (Suchebrgriffe) weiß ich nicht, da ich üblicherweise immer mit
    str_replace();
    nur fest vorgegebene Strings ersetze, allerdings ist das nun nicht so. Um auf den Punkt zu kommen, ich will aus
    [points]1[/points] oder zb: [b]Text[/b]
    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 :frown: *hmpf*
    Das sah in etwa so aus:
    preg_replace("[".(*)."]".(*)."[/".(*)."]", "", $source);
    (Soll absolut jeden BBCode durch nichts ersetzen, also löschen)

    Vielen Dank für die Antworten :wave:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Danke, es geht tatsächlich, allerdings nur eingeschränkt. :thumb: (siehe)
    die
    [b]test[/b]
    Die einstelligen BBCodes werden entfernt, allerdings nicht mehrstellige. Ich weiß nun wonach ich suchen muss, danke dir :wave: 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 :lol:)

    EDIT: Endlich das Ergebnis:
    <?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;
    ?>
    (Funktioniert nun mit beliebig langen BBCodes)
    Auf die richtige Lösung hat mich regexp-evaluator.de gebracht, aber ohne tct wäre ich bereits am googeln gescheitert, danke dir nochmal :angel:

    Beitrag zuletzt geändert: 29.4.2011 20:38:41 von limabone
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!