php htmlentities to decode textarea

15,429

Solution 1

The solution is probably for you to strip slashes.

The slashes are automatically added when data comes from POST or GET. This is known as magic quotes and by default are enabled.

You can remove these slashes by using stripslashes()

<?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>';

?>

See: http://php.net/manual/en/function.stripslashes.php

Solution 2

You need to use $encodetext = htmlentities ($inputtext, ENT_QUOTES); which will not try to escape the single and double quotes. Look under flags here: htmlentities

Solution 3

Make sure you aren't passing second parameters in your calls to htmlentities and html_entity_decode. If you do, they will escape/unescape quotes differently. Check the description of the $quote_style parameter in the documentation for htmlentities and html_entity_decode.

Share:
15,429
Brooke.
Author by

Brooke.

Hello, Hi, I am a woman of many talents, designer, developer, photographer. Most of all I'm about people, and getting to know the heart of people, what they are passionate about.

Updated on June 04, 2022

Comments

  • Brooke.
    Brooke. almost 2 years

    I have a text area and I would like to take the input of the text area and merge it all together. Everything works fine except that it's escaping the quotes. For example test's is outputted as test/'s

    To fix this I tried htmlenttries such as,

    <?php $inputtext= $_POST['textinput'];
            $encodetext = htmlentities($inputtext);
            $finaltext = html_entity_decode($encodetext);
    
            echo '<p>'.$finaltext .'</p>';  ?>
    

    This should work according to the html_entity_decode manual (unless I read it wrong which could very likely be the case)