Trotz htmlspecialchars(); HTML benutzen

Hallo,
ich habe eine Frage die mir bisher keiner beantworten konnte:
Ich benutzte htmlspecialchars(); z.B. so:
PHP:
$testvar = htmlspecialchars($testvar);
später jedoch, nach dem "filtern" von HTML der Inputfelder
will ich aber wieder HTML benutzen,
z.B. so:
PHP:
$testvar = str_replace("keinHTML", "<b>HTML</b>, $testvar);

Wie mache ich das?
:confused:
 
PHP:
<?php
$teststring = "hallo <b>ich bin html</b><i>ich auch</i>";

echo htmlspecialchars($teststring);

echo "<br/>";

echo str_replace("&lt;i&gt;ich auch&lt;/i&gt;", "<i>ich auch</i>", htmlspecialchars($teststring));
?>

Du musst nur die < > Tags durch &lt; bzw. &gt; ersetzen.
 
PHP:
function writeHTML ($text){
        $code = array();
        // Code zwischenspeichern
        preg_match_all("/\[html\](.*)\[\/html\]/Uis", $text, $code);
        foreach($code[0] as $key => $value){
                // Im Text durch eine Variable ersetzen, um diese dann später wiederum durch den Code zu ersetzen
                $text=preg_replace('#'.preg_quote($value, '#').'#','[ html ]'.$key.'[ /html ]',$text,1);
        }
        // umwandeln der HTML Zeichen 
        $text = htmlentities($text, ENT_QUOTES);
        //Code wieder einfügen
        foreach($code[1] as $key => $value)
                $text = preg_replace("/\[html\]".$key."\[\/html\]/siU", $value, $text);

        return $text;
    }
hier kann zeugs per html formatiert werden, zb. <b>fett</b> oder <i>kursiv</i> oder wie auch immer alles, was aber außerhalb der tags kommt, wird umgewandelt.
 
Zuletzt bearbeitet:
Danke erstmal für eure Hilfe...
Also ich habe das Problem das eben überhaupt garnichts was bei
"str_replace("wort", $diesevarenthälthtml, $varxyz);" in HTML steht umgewandelt wird...
Also "wort" soll z.B. in ein anderen, mit HTML formatierten Text umgewandelt werden,
jedoch alles, was in HTML Tags steht wird schlicht und ergreifen überhaupt nicht dargestellt,
nicht auf der Seite, nicht im Quellcode...
 
Hi,

was gibt denn

echo str_replace("wort", $diesevarenthälthtml, $varxyz);
exit;

aus?

Ist dort Dein erwünschtes Ergebnis enthalten?

Gruß tyg3r
 
Zurück