Pergunta

When sending a string to htmlentities() a result is produced in our production environment, but in my development environment, htmlentities() produces an empty string.

$content = htmlentities($content, ENT_NOQUOTES);
Foi útil?

Solução

An encoding should be specified as the encoding defaults to one value in older versions of PHP and another in newer versions of PHP:

If [the encoding] is omitted, the default value for this argument is ISO-8859-1 in versions of PHP prior to 5.4.0, and UTF-8 from PHP 5.4.0 onwards.

In my case, the string being passed to htmlentities was encoded in ISO-8859-1, which worked in the older version of PHP without specifying an encoding, but the newer version of PHP attempted to parse it with a UTF-8 encoding instead, which produced the empty string. Specifying an encoding as such fixed this issue:

$content = htmlentities($content, ENT_NOQUOTES, 'ISO-8859-1');
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top