-1

我试图显示从 htmlentities() 函数返回的输出。但是,它在浏览器中什么也不显示。这是我的代码..

$advertisement = "Coffee at 'Cafè Française' costs $2.25.";
echo htmlentities($advertisement);

结果应该是这样的:

“Cafè Française”的咖啡售价 2.25 美元。

但是,浏览器中没有显示任何内容。

当我在变量中分配输出时,它的值不是 NULL。测试代码为:

$temp = htmlentities($advertisement);
if($temp === NULL)
    echo "Null";
else
    echo "Not null";

那么,结果是“Not null”;

我也尝试将此代码作为测试:

$str = "A 'quote' is `<b>`bold`</b>`";

//Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

但是,浏览器中的输出不是我所期望的。我的意思是在浏览器中它没有被替换<b>&lt;b&gt;

我错过了什么?我需要更改 php.ini 文件中的任何设置吗?

4

2 回答 2

0

这与默认的 UTF-8 编码和法语有关。您必须将编码更改为 ISO-8859-15 才能使代码 avec Française 工作:

$advertisement = "Coffee at 'Cafè Française' costs $2.25.";
echo htmlentities($advertisement, ENT_QUOTES, "ISO-8859-15");

当您在浏览器中查看它时,它将保持不变。这就是 htmlentities 的本意。如果您右键单击浏览器并查看源代码,您将看到预期的转换:

Coffee at &#039;Caf&egrave; Fran&ccedil;aise&#039; costs $2.25.
于 2013-09-04T10:59:52.030 回答
0

这就是 htmlentities 应该做的。只需将字符串回显出来,它就会自动实现 HTML。

$str = "A quote is <b>bold</b>";
echo $str;
于 2013-08-12T18:32:15.090 回答