Reguläre Ausdrücke (i hoff die heißen so)

theLMF

Mitglied
Ich ersetze einen $string mit diesem Befehl
Code:
$string = preg_replace("=^(.*)\[quote\](.*)\[/quote\](.*)$=msi",$1 $ 2 $ 3,$text);

(vgl. mit dem BBCode quote in diesem Forum)

Wenn man beim "quoten" quote schreibt und danach zur übersichtlichkeit (für den schreiber) Enter drückt, dann speichert der Befehl ein <br> - beim auslesen mit obigem Befehl sollte aber dieses <br> (direkt der schrift "quote" und dem queerbalken) nicht mehr auftauchen...
wie mache ich das mit diesen regulären ausdrücken (oder wie die auch immer heißen) ???
 
mh irgendwie komm ich mit deinen formulierungen nit klar..ich würd die gern helfen (denn langsam hab ích die regulären ausdrücke drauf) aber irgendwie erschliesst sich mir die fragestellung nit :(
sry...
 
Etwa in der richtung:
PHP:
<?php
$text = "";

$regexp = "/\[ quote](.*)\[\/ quote\]/siU";

$replace = "
<table align=\"center\" width=\"98%\">
    <tr>
        <td><b>Zitat:</b></td>
    </tr>
    <tr>
        <td>
            <table cellpadding=\"4\" cellspacing=\"1\" width=\"100%\" bgcolor=\"#000000\">
                <tr>
                    <td bgcolor=\"#ffffff\">\\1</td>
                </tr>
            </table>
        </td>
    </tr>
</table>
";

$text = preg_replace($regexp,$replace,$text);
?>
 
hmm leider hat der in der datenbank des so gespeichert

Code:
<br>
Text
<br>

(bzw. sinngemäß so)


ich muss irgendwie diese <br>s rausbekommen - das der die nicht ausliest
 
PHP:
<?php
$text = str_replace("<br>","\n",$text);
?>

Reicht das, oder muss es ein regulärer sein? :)

Edit: Achja, du solltest funktionen wie htmlspecialchars(), nl2br() etc bei der Ausgabe verwenden, dann hat man das Problem nicht :)
 
Zuletzt bearbeitet:
Dann versuch mal folgendes:

PHP:
<?php
function strip_br($text) {
    $text = str_replace("<br>","\n",$text);
return "<table align=\"center\" width=\"98%\">
    <tr>
        <td><b>Zitat:</b></td>
    </tr>
    <tr>
        <td>
            <table cellpadding=\"4\" cellspacing=\"1\" width=\"100%\" bgcolor=\"#000000\">
                <tr>
                    <td bgcolor=\"#ffffff\">$text</td>
                </tr>
            </table>
        </td>
    </tr>
</table>
";

}

$regexp = "/[ quote](.*)[/ quote]/siU";

$text = preg_replace($regexp,"strip_br('\\\\1')",$text);
?>
 
Zurück