【www.5929.com】编码方法,配置步骤分享

今天在使用.htaccess做伪静态的时候,暴发一件怪事,URL里存在C++时会有难题,在处理C++那些词的时候,无论如何,$_GET都得不到++,只好得到C空格.

WINDOWS 下WAMP环境下 的 Zend Framework 配置

尽管最新的 PHP 5.4 已经完美帮衬 JSON 中文编码,即经过
JSON_UNESCAPED_UNICODE 参数,例如:

iis
rewrite伪静态粤语无效难题本人统计了两个解决办法,一种是在rewrite伪静态事上[NU]参数即可化解,另种是自家原先讲过的把普通话汉字进入urlencode编码转换那样不存在粤语了,但浏览器会自动识别汉语并可正常访问。

一开首我觉着是没用urlencode处理,后来察觉确实处理了,后台经过排查,确定是rewrite的标题,因为在单文件的环境是可以得到C++那些词的,当然,是由此了urlencode的.

1,安装WampServer
下载WAMPSERVER并安装,在本例中,安装在C:\wamp下。

json_encode(“中文”, JSON_UNESCAPED_UNICODE)对于早前 PHP
版本,处理不转义中文字符的 json 编码

【www.5929.com】编码方法,配置步骤分享。今天在拍卖一个tag页面的时候.由于须求用到伪静态功效.在rewrite的时候

原因:rewrite得不到c++这一个词,是因为APACHE在收获参数后,自行做了urldecode处理,导致不能得到C++中的加号部分

**2 安装Zend Framework

PHP 和 JavaScript 交互其实很便宜,PHP 原生也提供了对 JSON
格式的支撑。首要不外乎 JSON 编码息争码八个函数:

缘由是里面的普通话Unicode音信会被ISAPI_Rewrite转为uft-8的格式编码大家只需求在对应的伪静态规则后加[NU]参数即可禁止编码转换,

 

**解压缩 Zend Framework 压缩包中 \library\ 至 C:\wamp\library
(这么些中没有library目录,要自个儿建一个)

json_endoce:
json_dedoce:

例如

决方案如今只看到了一种,在PHP的官网上也有记载,在拍卖c++时,举办一回urlencode处理,即urlencode(urlencode(‘C++’)),那样再rewrite的时候,就可以得到C++这些词了.

3 开启支持rewrite module
编辑 httpd.conf。

【www.5929.com】编码方法,配置步骤分享。— 对变量进行 JSON 编码,并回到 value 值的 JSON 形式,例如:

 代码如下

屈居PHP.NET上的具体地址

  • 编辑 C:\wamp\bin\apache\Apache2.2.10\conf\httpd.conf 文件。或

  • 右击托盘里WampServer小图标 –> Apache –> httpd.conf

 代码如下

复制代码

www.5929.com 1

# LoadModule rewrite_module modules/mod_rewrite.so

<?php
$arr = array (‘a’=>1,’b’=>2,’c’=>3,’d’=>4,’e’=>5);
echo json_encode($arr);
?>

RewriteRule ^/shop-(.*).html$ /shop.php?nick=$1 [NU]

 

去掉 ‘#’,改为:

上述代码执行后输出:

诸如此类就接济汉语了..写下来方便以后使用.

LoadModule rewrite_module modules/mod_rewrite.so

 代码如下

注:以上办法在IIS下有用.在apache下可以无视.

**4 PHP library 设置

{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}

方法二,此办法可以用来iis伪静态与apache伪静态哦,那样处理是匹配所有服务器环境了,如

**- 编辑 C:\wamp\bin\php\php5.2.7\php.ini,或

比方要编码的数据源(一般是一个数组),value 中富含汉语,经过
json_encode 处理后输出的是 unicode 编码。

a.php?a=一聚教程网

  • 右击托盘里WampServer小图标 –> PHP –> php.ini

 代码如下

那样的话有时会有标题,但我们能够应用php urlencode()函数举办更换

; Windows: “\path1;\path2”

<?php
$arr = array (‘a’=>’芒果小站’);
echo json_encode($arr);
?>

a.php?a=urlenocde(‘一聚教程网’);

; include_path = “.;c:\php\includes”

以上代码执行后输出:

然后在收受页面一向$_GET[‘a’]即可缓解了哦。

去掉 ‘;’,并且增进Zend Framework 压缩包安装路径,改为:

 代码如下

rewrite伪静态中文无效难点自己总计了三个化解办法,一种是在rewrite伪静态事上[NU]参数即可缓解,另种是自我原先讲过的把普通话汉字进入url…

; Windows: “\path1;\path2” (那里的分企业没有清除)

{“a”:”u8292u679Cu5C0Fu7AD9″}

include_path = “.;c:\php\includes;c:\wamp\library;”

PHP 底层已经做了 unicode 处理,要是嫌它不够直观,可以运用 urlencode 和

5. 生产quickstart项目
Windows伊始菜单点击运行,输入”CMD”,打开Dos命令窗口,

urldecode

运行命令:”set
path=%path%;C:\wamp\bin\php\php5.2.9-2;”注册php.exe的路径

办法绕过那些转码为 unicode 的历程:

运转命令:”cd C:\wamp\www”,将近年来路线切换来WAMP的网站文档www路径

 代码如下

运转命令:”ZendStudio\ZendFramework-1.8.1\bin\zf.bat create project
quickstart

$arr = array (‘a’=>urlencode(‘芒果小站’));
echo urldecode(json_encode($arr));以上代码执行后输出:

在意将zf.bat的门路换成你本人的门路,稍候,zf.bat建立quickstart项目:”Creating
project at C:/wamp/www/quickstart”

{“a”:”芒果小站”}

6. 测试示例项目
开辟浏览器,浏览”
to the Zend Framework!”的页面了。(假设没有显示请重启wmap)

www.5929.com,,那里享用个更健全的章程:

你可能感兴趣的篇章:

  • 搞定了Ajax、MySQL 和 Zend Framework
    的乱码难题
  • ZendFramework2连接数据库操作实例
  • Zend
    Framework数据库操作技能总计
  • Zend
    Framework入门应用实例详解
  • Zend
    Framework前端控制器用法示例
  • Zend
    Framework路由器用法实例详解
  • Zend
    Framework分发器用法示例
  • Zend
    Framework动作控制器用法示例
  • Zend
    Framework处理Json数据方式详解
  • Zend
    Framework使用Zend_Loader组件动态加载文件和类用法详解
  • Zend
    Framework已毕自定义过滤器的法门
  • Zend
    Framework框架中完结Ajax的措施言传身教

 /**
  * 不转义中文字符的 json 编码方法
  * @param array $arr 待编码数组
  * @return string
  */
 function encode ($arr) {

  $str = json_encode($arr);
  $search = “#\u([0-9a-f]+)#ie”;
  $replace = “iconv(‘UCS-2’, ‘UTF-8’, pack(‘H4’, ‘\1’))”;

  return preg_replace($search, $replace, $str);

 }

Leave a Comment.