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)

War es hilfreich?

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 &amp;
//   " to &#039;
//  and change all < and > to &lt; and &gt; 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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top