HTML-Sonderzeichen umwandeln?

Create

Mitglied
Hi,
ich habe folgendes Problem, aus einer Formmaske wird ein Text übertragen, dieser wird, nach dem Abschicken in ein Template eingeführt, dass ist auch alles nicht das Problem.
Allerinsgs möchte ich, dass HTML-Sonderzeichen umgewandelt werden. Trotz der Anwendung der dafür vorgesehen Funktionen steht "Ö" immer noch als Ö im Quelltext und nicht als HTML-Code (Ö).

Mein (mini) Code:
$text = htmlspecialchars($text);
$text = stripslashes($text);
$text = nl2br($text);

Im Template wird {--text--} mit der Eingabe aus $text ersetzt (das funktioniert!)!

Kann mir einer sagen, was ich falsch mache?
Create - manchmal Betriebsblind ist -
 
PHP:
htmlspecialchars();

.. deckt nur &, ", ', <, > ab. Wenn du auch deutsche umlaute umwandeln willst, dann brauchst du zusätzlich

PHP:
htmlentities();

dann würde dein script so aussehen, und tausche nicht die reihenfolge..:

PHP:
<?php
$text = htmlspecialchars(htmlentities($text)); 
$text = stripslashes($text); 
$text = nl2br($text); 
?>
 
was ist an der reihenfolge so wichtig?

ich meine es ist schon klar, das wenn man
PHP:
$text = str_replace("\n","<br>",$text);
$text = htmlspecialchars($text);

schreibt, dass dann &lt;br&gt; rauskommt und dann als Ausgabe kein Zeilenumbruch sondern <br> da steht, aber wozu sonst?
 
da das fragezeichen zb von htmlspecialchars() ersetzt wird, wird aus jedem von htmlentities() generierten sonderzeichencode, die ja mit einem fragezeichen anfangen, ein sonderzeichencode für dieses fragezeichen. Also hättest du auf deiner seite &auml;u&szlig;erst unsch&ouml;ne effekte, alle sonderzeichen wären ausgeschrieben.
 
Zurück