php htmlentities zu dekodieren TextArea-
-
21-09-2019 - |
Frage
Ich habe einen Textbereich, und ich möchte die Eingabe des Textbereichs nehmen und sie alle miteinander verschmelzen. Alles funktioniert gut, außer dass es die Anführungszeichen ist entkommen. Zum Beispiel test's
als test/'s
ausgegeben
Um dies habe ich versucht htmlenttries zu beheben, wie
<?php $inputtext= $_POST['textinput'];
$encodetext = htmlentities($inputtext);
$finaltext = html_entity_decode($encodetext);
echo '<p>'.$finaltext .'</p>'; ?>
Dies sollte nach der Arbeit html_entity_decode Handbuch (wenn ich es falsch gelesen, was sehr wahrscheinlich der Fall sein könnte)
Lösung
Die Lösung ist wahrscheinlich für Sie Schrägstriche zu entfernen.
werden die Schrägstriche automatisch hinzugefügt, wenn Daten von POST kommt oder GET. Dies ist bekannt als Magic Quotes und standardmäßig aktiviert sind.
Sie können diese Schrägstriche entfernen, indem stripslashes()
mit
<?php
$text = $_POST['txtarea']; // from textarea
if(get_magic_quotes_gpc()){
$text = stripslashes($text);
// strip off the slashes if they are magically added.
}
$text = htmlentities($text);
// what htmlentities here does is really to convert:
// & to &
// " to '
// and change all < and > to < and > respectively. this will automatically disable html codes in the text.
echo '<pre>'.$text.'</pre>';
?>
Siehe auch: http://php.net/manual/en/function.stripslashes .php
Andere Tipps
Sie müssen $encodetext = htmlentities ($inputtext, ENT_QUOTES);
verwenden, die die einfache und doppelte Anführungszeichen zu entkommen nicht versuchen. Schauen Sie unter Flags hier: htmlentities
Stellen Sie sicher, dass Sie nicht vorbei zweiten Parameter in Ihren Anrufen auf htmlentities
und html_entity_decode
. Wenn Sie das tun, werden sie entkommen / anders unescape zitiert. Schauen Sie sich die Beschreibung des $quote_style
Parameter in der Dokumentation zu htmlentities
und html_entity_decode
.