Tod*_*ddN 6 php html-entities htmlspecialchars
当然,之前已经提出了这个问题并且已经找到了解决方案,所有这些解决方案迄今为止都没有用 我想通过使用htmlentities或更改TM符号和&符号到他们的html equivelents htmlspecialchars:
$TEST = "Kold Locker™ & other stuff";
echo "ORGINIAL: " . $TEST . "<BR/>";
echo "HTML: " . htmlentities($TEST, ENT_COMPAT, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
这显示:
ORGINIAL: Kold Locker™ & other stuff
HTML:
Run Code Online (Sandbox Code Playgroud)
我也尝试过,htmlspecialchars第二个参数改变了相同的结果.
我错过了其他人声称在其他解决方案中工作的内容?
更新:我尝试只显示utf8_encode($TEST)并显示HTML: Kold Locker™ & other stuff
我不知道为什么,这对我有用(必须为我调用两次)
$html="<html> <head><head>something like this </html>"
$entities_correction= htmlentities( $html, ENT_COMPAT, 'UTF-8');
echo htmlentities( $entities_correction, ENT_COMPAT, 'UTF-8');
Run Code Online (Sandbox Code Playgroud)
输出:
<html> <head><head>something like this </html>
我以为我遇到了与Pjack相同的问题(7月14日,8:54,消息):
$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str);
Run Code Online (Sandbox Code Playgroud)
在浏览器(在我的情况下为Firefox)中给出原始字符串$ str(不进行任何翻译),而
echo htmlentities(htmlentities($str));
Run Code Online (Sandbox Code Playgroud)
给出:
A 'quote' is <b>bold</b>
Run Code Online (Sandbox Code Playgroud)
(我使用从Windows-7 XAMPP获得的PHP / 5.4.16)。
但是,经过一番思考,我发现浏览器显示字符串&lt;。和&gt; 为>和<。(请参阅浏览器中的源代码)。htmlentities的第二次调用转换为&&,然后浏览器才首先显示您期望的内容。
你的代码对我有用:-?
在手册页htmlentities()中我们可以读到:
返回值
返回编码后的字符串。
如果输入字符串在给定编码中包含无效的代码单元序列,则将返回空字符串,除非设置了 ENT_IGNORE 或 ENT_SUBSTITUTE 标志。
我的猜测是输入数据未正确编码为 UTF-8 并且该函数返回空字符串。(假设脚本没有崩溃,即该部分之后的代码仍然运行。)
| 归档时间: |
|
| 查看次数: |
13929 次 |
| 最近记录: |