求PHP高手:php 解密JS中的escape的代码

希望给个详细解释,最好附上每段代码的用法说明!希望不要再网上找的,我找了很多,都不好使,也许是我不懂网上的代码罢了,如果你觉得网上的代码可行,最好给我详细解释一下用法,以... 希望给个详细解释,最好附上每段代码的用法说明!希望不要再网上找的,我找了很多,都不好使,也许是我不懂网上的代码罢了,如果你觉得网上的代码可行,最好给我详细解释一下用法 ,以及怎么赋予变量等等...无限感激,好用的话,加50分!
-----------------------------------------------------------------------------------------------
说下我的代码:
如下是JS代码:
<script type="text/javascript">document.write("<a href=rd.php?class=" + escape('行业分析') + ">行业分析</a>");</script>
对“行业分析”这几个字加密成功了的!
如下是PHP获取参数:要求解密,解密后从数据库提出数据
<?
...
$class=$_GET["class"];
请求解密(传过来的加密字符串)......HELP!
$sql="select * from $demo where class = '$class' order by id desc";
$res=mysql_query($sql) or die("出错了:".mysql_error());
?>
展开
 我来答
hotdigger
2010-10-06 · TA获得超过3590个赞
知道大有可为答主
回答量:1458
采纳率:50%
帮助的人:626万
展开全部
本例经过我测试没有问题.
<?
function utf8RawUrlDecode ($source) {
$decodedStr = "";
$pos = 0;
$len = strlen ($source);
while ($pos < $len) {
$charAt = substr ($source, $pos, 1);
if ($charAt == '%') {
$pos++;
$charAt = substr ($source, $pos, 1);
if ($charAt == 'u') {
// we got a unicode character
$pos++;
$unicodeHexVal = substr ($source, $pos, 4);
$unicode = hexdec ($unicodeHexVal);
$entity = "&#". $unicode . ';';
$decodedStr .= utf8_encode ($entity);
$pos += 4;
}
else {
// we have an escaped ascii character
$hexVal = substr ($source, $pos, 2);
$decodedStr .= chr (hexdec ($hexVal));
$pos += 2;
}
} else {
$decodedStr .= $charAt;
$pos++;
}
}
return $decodedStr;
}
$test = '%u884C%u4E1A%u5206%u6790';//js escape过的'行业分析';
echo utf8RawUrlDecode($test);
?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
澄闻网
2010-10-06 · TA获得超过2789个赞
知道大有可为答主
回答量:4683
采纳率:0%
帮助的人:3142万
展开全部
1、不要用escape,这个过程是自动编码的,用不着再用js的escape函数。
2、php里用$class=urldecode($_GET["class"]);
这样就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengzhu2007
2010-10-06 · TA获得超过470个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:230万
展开全部
function unescape($str) {
$ret = '';
$len = strlen ( $str );
for($i = 0; $i < $len; $i ++) {
if ($str [$i] == '%' && $str [$i + 1] == 'u') {
$val = hexdec ( substr ( $str, $i + 2, 4 ) );
if ($val < 0x7f)
$ret .= chr ( $val );
else if ($val < 0x800)
$ret .= chr ( 0xc0 | ($val >> 6) ) . chr ( 0x80 | ($val & 0x3f) );
else
$ret .= chr ( 0xe0 | ($val >> 12) ) . chr ( 0x80 | (($val >> 6) & 0x3f) ) . chr ( 0x80 | ($val & 0x3f) );
$i += 5;
} else if ($str [$i] == '%') {
$ret .= urldecode ( substr ( $str, $i, 3 ) );
$i += 2;
} else
$ret .= $str [$i];
}
return $ret;
}

参考资料: http://www.sycx8.com/art.php?id=4

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式