Search code examples
phphtmlspecialchars

htmlspecialchars is dropping characters


I'm trying to use htmlspecialchars but it doesn't seem to be working. I'm using OSX 10.9.1 and PHP 5.4.17. I write:

var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES, 'UTF-8'));
echo htmlspecialchars("<a href='test'>Test</a>", ENT_XHTML, 'UTF-8');

and get:

string '&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;' (length=45)
<a href='test'>Test</a

Any ideas?


Solution

  • It works, but you expect something else.

    The output is interpreted by your browser as HTML. You can get the plain output by setting the content type to plain or using a command line.

    <?php
    
    header('Content-Type: text/plain');
    
    var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES, 'UTF-8'));
    echo htmlspecialchars("<a href='test'>Test</a>", ENT_XHTML, 'UTF-8');