14 08 2019

先上代码:

<?php
$c = '<p>123</p>';
$c = htmlspecialchars($c);
var_dump($c);

echo "\r\n";

$c = htmlspecialchars($c);
var_dump($c);

echo "\r\n";

$c = htmlspecialchars($c);
var_dump($c);

结果:

分析一下过程:

1. 将 < 和 > 转义为 &lt; 和 &gt;
2. 将 & 转义为 &amp;
3. 将 & 转义为&amp;
如此循环...

前端页面中如想正确显示内容,多少次htmlspecialchars,就要对应于多少次htmlspecialchars_decode。

富文本编辑器插入并显示代码,运用的就是这个原理。如kindEditor中对应的代码是:

html = '<pre class="prettyprint' + cls + '">\n' + K.escape(code) + '</pre> ';

其中 K.escape() 就是用JS的方法对代码提前做了一次转义。

function _escape(val) {
	return val.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}


延伸阅读
  1. 上一篇:通过QQ号获取昵称和头像接口
  2. 下一篇:常用的正则验证
发表评论
提交留言,需要输入QQ号,用来快速获取您的头像和昵称。