GVKun编程网logo

php模拟js函数unescape的函数代码(php调用js函数)

22

对于php模拟js函数unescape的函数代码感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php调用js函数,并且为您提供关于escapeunescape的php下的实现方法、esca

对于php模拟js函数unescape的函数代码感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解php调用js函数,并且为您提供关于escape unescape的php下的实现方法、escape unescape的php下的实现方法_php技巧、escape unescape的php下的实现方法_PHP教程、escape是什么意思,在PHP中实现Javascript的escape()函数代码的宝贵知识。

本文目录一览:

php模拟js函数unescape的函数代码(php调用js函数)

php模拟js函数unescape的函数代码(php调用js函数)

<div><adata="36700"id="copybut36700" onclick="doCopy('code36700')"> 代码如下:

escape unescape的php下的实现方法

escape unescape的php下的实现方法

functionescape($str){
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v){
if(ord($v[0])<128)
$ar[$k]=rawurlencode($v);
else
$ar[$k]="%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
returnjoin("",$ar);
} functionunescape($str){
$str=rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$r);
$ar=$r[0];
foreach($aras$k=>$v){
if(substr($v,2)=="%u"&&strlen($v)==6)
$ar[$k]=iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
returnjoin("",$ar);
}

escape unescape的php下的实现方法_php技巧

escape unescape的php下的实现方法_php技巧

function escape($str) { 
 preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
 $ar = $r[0]; 
 foreach($ar as $k=>$v) { 
   if(ord($v[0])      $ar[$k] = rawurlencode($v); 
   else 
     $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); 
 } 
 return join("",$ar); 


function unescape($str) { 
 $str = rawurldecode($str); 
 preg_match_all("/(?:%u.{4})|.+/",$str,$r); 
 $ar = $r[0]; 
 foreach($ar as $k=>$v) { 
   if(substr($v,0,2) == "%u" && strlen($v) == 6) 
     $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); 
 } 
 return join("",$ar); 

escape unescape的php下的实现方法_PHP教程

escape unescape的php下的实现方法_PHP教程

function escape($str) { 
 preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
 $ar = $r[0]; 
 foreach($ar as $k=>$v) { 
   if(ord($v[0])      $ar[$k] = rawurlencode($v); 
   else 
     $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); 
 } 
 return join("",$ar); 


function unescape($str) { 
 $str = rawurldecode($str); 
 preg_match_all("/(?:%u.{4})|.+/",$str,$r); 
 $ar = $r[0]; 
 foreach($ar as $k=>$v) { 
   if(substr($v,0,2) == "%u" && strlen($v) == 6) 
     $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); 
 } 
 return join("",$ar); 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/318353.htmlTechArticlefunctionescape($str){ preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); $ar=$r[0]; foreach($aras$k=$v){ if(ord($v[0])128) $ar[$k]=rawurlencode($v); else $ar[$k]="%u".bin2hex(ic...

escape是什么意思,在PHP中实现Javascript的escape()函数代码

escape是什么意思,在PHP中实现Javascript的escape()函数代码

在 javascript 中,可以利用 escape/unescape() 和 eval_r() 函数进行简单的转码处理,让普通的 url 网址看起来比较怪异,使那些令人讨厌的搜索爬虫无法辨认你希望隐藏的资源。

这里,一般都需要预先将正常的字符串编码成 JavaScript unescape() 函数能够解译的格式,以 PHP 为例,可以使用以下函数实现 Javascript 中 escape() 函数相同的功能:

 代码如下:

<?php 
function escapeToHex($string, $encoding = UTF-8) { 
$return = ; 
for ($x = 0; $x < mb_strlen($string, $encoding); $x ++) { 
$str = mb_substr($string, $x, 1, $encoding); 
if (strlen($str) > 1) { // 多字节字符 
$return .= %u . strtoupper(bin2hex(mb_convert_encoding($str, UCS-2, $encoding))); 
} else { 
$return .= % . strtoupper(bin2hex($str)); 
} 
} 
return $return; 
} 
?>
登录后复制


假设我们要隐藏以下地址:http://www.php.cn/
我们可以利用以下脚本实现:

代码如下:

<?php 
// 请自行包含 escapeToHex() 函数定义 
$test = document.write(\<a href="http://www.dirk.sh/assets/uploaded/thisistest.pdf">test</a>\); 
echo <script Language="Javascript">eval_r(unescape(" . escapeToHex($test) . "))</script>; 
?>
登录后复制


如果你查看页面源代码,你会看到(因为太长,所以进行了手动分行,实际运行结果应该是完整的一行):

代码如下:

<script Language="Javascript">eval_r(unescape("%64%6F%63%75%6D%65%6E%74%2E%77 \ 
%72%69%74%65%28%27%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77 \ 
%2E%64%69%72%6B%79%65%2E%6E%65%74%2F%75%70%6C%6F%61%64%65%64%2F%74%68%69%73 \ 
%69%73%74%65%73%74%2E%70%64%66%22%3E%74%65%73%74%3C%2F%61%3E%27%29"))</script>
登录后复制


而在浏览器中显示的页面,和普通 html 没有分别。
注:
1、escapeToHex() 函数的第二个参数($encoding)表示你传递进来的字符串的编码,默认是 UTF-8,如果你使用了其他编码,应该在调用函数的明确指定;
2、unescape() 在 ECMAScript v3 规范中被反对使用,该规范建议使用新的替代函数 decodeURIComponent(),但我经过测试发现,decodeURIComponent()函数对多字节字符(中文)处理存在问题,所以仍然使用了 unescape() 函数。
3、原则上来说,上述方法只是为了防止搜索爬虫获取你认为需要保密的资源地址,在支持 Javascript 的浏览器下浏览页面,和没有启用这种保护机制情况下看到的呈现是完全相同的。

立即学习“PHP免费学习笔记(深入)”;

今天的关于php模拟js函数unescape的函数代码php调用js函数的分享已经结束,谢谢您的关注,如果想了解更多关于escape unescape的php下的实现方法、escape unescape的php下的实现方法_php技巧、escape unescape的php下的实现方法_PHP教程、escape是什么意思,在PHP中实现Javascript的escape()函数代码的相关知识,请在本站进行查询。

本文标签: