http_build_query函数带来的困扰
来源:互联网 发布:电脑软件如何升级 编辑:程序博客网 时间:2024/05/16 05:13
http_build_query是用来生成URL请求字符串的函数,很简单.不过今天却出现了一点小意外,在本机安装公司社区时,出现了无法登录的情况.但在测试服务器正常.经过地毯式排错,找到问题代码(仅演示,屏蔽敏感内容):
测试服务器得到结果为:
usr=touchboy&pwd=123456&ip=127.0.0.1&src=account
而我本地结果为:
usr=touchboy &pwd=123456 &ip=127.0.0.1 &src=account
中间的连接符出现了差异,服务器为正常的”&”,而我本地却是转义后的”&”,最终导致本地提交数据错误.
查看手中的PHP手册,http_build_query一节对此问题只字未提.所以想到的补救方法就只有用htmlspecialchars_decode($query)还原连接符.不过始终觉得可疑,为什么两台机子结果不一样.开始怀疑是linux(服务器)和windows(本机)的差异,但经过对另一台windows机子的测试,结果正常.后就怀疑是环境配置的问题,经过一番google,果然真相大白.问题元凶在php.ini配置中一行:
[coolcode lang="php"]arg_separator.output = “&”[/coolcode]
将arg_separator.output定义为”&”,重启apache,问题解决!
顺带说下PHP手册的问题,因我用的手册是之前比较经典的《PHP5中文手册文档版》(2006-11-05编译),2年半以前的东东,内容应该停留在PHP 5.1.0的阶段.很多内容已经滞后了.之后下载了陈浩(Haohappy)的《PHP中文手册》(2009-02-15编译),查看http_build_query一节,发现里面出现一行相关提示:
[coolcode lang="php"]
Note: 用 arg_separator.output 来分隔参数。 [/coolcode]
到官方查看最新手册,发现里面有更详尽阐述,说明在5.1.2版增加了$arg_separator 参数可以解决此问题.看来中文的手册滞后还是很严重,5.1.2应该是一年前发布的,而2009-02-15编译的最新中文手册仍未收录相关内容.
简而言之,遇到PHP函数故障,节省时间的最好解决方法:
1.第一时间到PHP官方查找答案.
2.保证自己手中的PHP手册是最新的.
本文地址:http://www.etang.info/php-it/http_build_query.html
文章来源:亿唐网
原创文章,转载请注明以上版权信息,亿唐网感谢您的理解与支持!
- http_build_query函数带来的困扰
- http_build_query函数带来的困扰
- redhat带来的困扰
- 宽带安装带来的困扰
- 很有用的函数http_build_query
- PHP的parse_str() 函数 和http_build_query()函数
- Hibernate的SaveOrUpdate方法带来的困扰
- FLex中的this关键字带来的困扰
- 解决Myeclipse ctrl+h带来的困扰
- UTF-8 BOM带来的困扰
- OpenCV版本问题带来的困扰
- ScrollView代码布局(SnapKit)带来的困扰
- 正则表达式反斜杠带来的困扰
- PHP中http_build_query的替代函数实现
- php 中 http_build_query()函数的使用
- PHP http_build_query()函数
- http_build_query()函数使用方法
- 微软的HTC不执行带来的困扰
- 测试IDoc生成会计凭证
- 什么结构体 struct
- C语言实现Base64编码
- 自定义Dropdownlist 下拉框的Tooltip
- Request对象常用属性的用法
- http_build_query函数带来的困扰
- extern c的作用
- 一款php 的mvc 开源框架openbiz
- 抽象数据类型,让Oracle数据库数据管理更加容易
- MAC地址绑定IP
- linux 新建账户
- Oracle使用索引的好处
- TransactionScope应用
- 详细解析Java中抽象类和接口的区别