过JS向PHP页面传递中文参数的两种方法
2016-01-22 14:35
603 查看
在网上找的,先留下来,以备后用,看评论说,这个是针对UTF-8编码的
暂时找到了两种最常用的方法
////////////////////////////////////
// 第一种 直接URL编码 比较方便
JS:
[javascript] view
plain copy
<script type=”text/javascript”>
string = encodeURIComponent(string);
location.href = index.php?keyword=’+string;
</script>
————————————————
php:
[php] view
plain copy
$keyword = (isset($_GET['keyword'])) ? $_GET['keyword'] : ”;
//////////////////////////////////////////////////////////////////
//第二种使用escape编码比较复杂 但兼任性似乎要好,通过ajax传递的时候可能需要
JS:
[javascript] view
plain copy
……..
$.getJSON(“admin.php?action=”+escape(action),function(json){
})
…………
PHP:
[php] view
plain copy
function unescape($str) { //定义unescape函数
$str = urldecode($str);
preg_match_all(“/(?:%u.{4}|.;|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) == “”)
$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"]);
暂时找到了两种最常用的方法
////////////////////////////////////
// 第一种 直接URL编码 比较方便
JS:
[javascript] view
plain copy
<script type=”text/javascript”>
string = encodeURIComponent(string);
location.href = index.php?keyword=’+string;
</script>
————————————————
php:
[php] view
plain copy
$keyword = (isset($_GET['keyword'])) ? $_GET['keyword'] : ”;
//////////////////////////////////////////////////////////////////
//第二种使用escape编码比较复杂 但兼任性似乎要好,通过ajax传递的时候可能需要
JS:
[javascript] view
plain copy
……..
$.getJSON(“admin.php?action=”+escape(action),function(json){
})
…………
PHP:
[php] view
plain copy
function unescape($str) { //定义unescape函数
$str = urldecode($str);
preg_match_all(“/(?:%u.{4}|.;|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) == “”)
$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"]);
相关文章推荐
- 关于php上传多张图片时,选择图片后就可以预览的问题
- php mysql实体字符
- PHP爬虫之百万级别知乎用户数据爬取与分析
- Yii2国际化i18n配置的基本步骤
- Laravel 之October Pages
- php 中的 0 和 null
- PageAdapter,FragmentPagerAdapter与FragmentStatePagerAdapter
- 【PHP进阶篇】3.类与面向对象--慕课网【学习总结】
- FtpClient对ftp服务器进行上传及下载
- php 明天,下个星期,时间函数
- thinkphp3.2 cli模式的正确使用方法
- php apc缓存
- PHP,C# 和JAVARSA签名及验签
- PHP检查是否BOM头
- PHP判断当前是否utf-8
- 用Matplotlib绘制二维图像
- ThinkPHP中U方法 在模板输出变量给 U方法传参 小记
- php读取超大日志文件
- PHP curl_setopt函数用法介绍补充篇
- PHP编译configure时常见错误总结