Domanda

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);
È stato utile?

Soluzione

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');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top