当前位置:Gxlcms > PHP教程 > 在PHP中实现Javascript的escape()函数代码_PHP教程

在PHP中实现Javascript的escape()函数代码_PHP教程

时间:2021-07-01 10:21:17 帮助过:18人阅读

这里,一般都需要预先将正常的字符串编码成 JavaScript unescape() 函数能够解译的格式,以 PHP 为例,可以使用以下函数实现 Javascript 中 escape() 函数相同的功能:
代码如下:
  1. <br><!--?php <BR-->function escapeToHex($string, $encoding = UTF-8) { <br>$return = ; <br>for ($x = 0; $x < mb_strlen($string, $encoding); $x ++) { <br>$str = mb_substr($string, $x, 1, $encoding); <br>if (strlen($str) > 1) { // 多字节字符 <br>$return .= %u . strtoupper(bin2hex(mb_convert_encoding($str, UCS-2, $encoding))); <br>} else { <br>$return .= % . strtoupper(bin2hex($str)); <br>} <br>} <br>return $return; <br>} <br>?> <br> <br>假设我们要隐藏以下地址:http://www.dirk.sh/assets/uploaded/thisistest.pdf <br>我们可以利用以下脚本实现: <br><span style="CURSOR: pointer" onclick="doCopy('code85037')"><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br><!--?php <BR-->// 请自行包含 escapeToHex() 函数定义 <br>$test = document.write(\test\); <br>echo ; <br>?> <br> <br>如果你查看页面源代码,你会看到(因为太长,所以进行了手动分行,实际运行结果应该是完整的一行): <br><span style="CURSOR: pointer" onclick="doCopy('code63011')"><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br> <br> <br>而在浏览器中显示的页面,和普通 html 没有分别。 <br>注: <br>1、escapeToHex() 函数的第二个参数($encoding)表示你传递进来的字符串的编码,默认是 UTF-8,如果你使用了其他编码,应该在调用函数的明确指定; <br>2、unescape() 在 ECMAScript v3 规范中被反对使用,该规范建议使用新的替代函数 decodeURIComponent(),但我经过测试发现,decodeURIComponent()函数对多字节字符(中文)处理存在问题,所以仍然使用了 unescape() 函数。 <br>3、原则上来说,上述方法只是为了防止搜索爬虫获取你认为需要保密的资源地址,在支持 Javascript 的浏览器下浏览页面,和没有启用这种保护机制情况下看到的呈现是完全相同的。</li><li><p></p></li><li><p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/322351.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/322351.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">这里,一般都需要预先将正常的字符串编码成 JavaScript unescape() 函数能够解译的格式,以 PHP 为例,可以使用以下函数实现 Javascript 中 escap...</span></p></li><li> </li></ol></pre></li></ol></pre>

人气教程排行