您的位置:首页 > 编程语言 > PHP开发

过JS向PHP页面传递中文参数的两种方法

2012-12-28 21:37 627 查看
在网上找的,先留下来,以备后用,看评论说,这个是针对UTF-8编码的

暂时找到了两种最常用的方法

////////////////////////////////////

// 第一种 直接URL编码 比较方便

JS:



<script type=”text/javascript”>
string = encodeURIComponent(string);
location.href = index.php?keyword=’+string;
</script>

————————————————

php:

$keyword = (isset($_GET['keyword'])) ? $_GET['keyword'] : ”;

//////////////////////////////////////////////////////////////////

//第二种使用escape编码比较复杂 但兼任性似乎要好,通过ajax传递的时候可能需要

JS:

……..
$.getJSON(“admin.php?action=”+escape(action),function(json){
})
…………


PHP:

function unescape($str) { //定义unescape函数
$str = urldecode($str);
preg_match_all(“/(?:%u.{4}|&#x.;|&#d+;|.+)/U”,$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == “%u”)
$ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“H4″,substr($v,-4)));
elseif(substr($v,0,3) == “&#x”)
$ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“H4″,substr($v,3,-1)));
elseif(substr($v,0,2) == “&#”) {
$ar[$k] = iconv(“UCS-2BE”,”utf-8″,pack(“n”,substr($v,2,-1)));
}
}
return join(“”,$ar);
}
$action=unescape($_GET["action"]);


源文地址:http://i.sm5.cc/xhy-39/js-to-php-two-methods-of-passing-parameters-in-chinese
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: