PHP 升级5.6版本后遇到的问题

本文分享了在PHP版本升级至5.6后遇到的json_decode失败、mcrypt_encrypt加密失败、curl模拟post上传文件限制以及mysql_connect连接数据库失败等常见问题,并提供了相应的解决方案,包括数据编码转换、调整密钥长度、使用CURLFile类以及切换到mysqli或pdo连接。
摘要由CSDN通过智能技术生成

PHP版本从5.4升级到5.6版本以后,有一些常见的问题,提出来跟大家分享下:


json_decode 失败

5.6后版本的PHP,JSON处理数据时,遇到非UTF-8特殊字符,会直接返回false,之前则是会将特殊字符转化为NULL。这样会导致JSON无法解压/压缩数据成功。

解决方案: 在JSON处理之前,先遍历数据,统一将编码转为UTF-8。


mcrypt_encrypt 加密失败

当参数密钥key长度大于8位时,函数返回false,PHP 5.6版本后,不再接受无效长度的 key and iv 参数
如果参数密钥key长度大于8位,mcrypt_decrypt() 函数会产生警告并且返回 FALSE,导致加密失败。

解决方案: 将密钥长度截取到8位,这样能兼容5.6后的PHP版本。


curl模拟post上传文件不能通过@文件来进行上传了

5.5之前都可以通过@/tmp/test.jpg这样的方式直接上传,5.5之后,CURLOPT_SAFE_UPLOAD默认为true,不能通过@文件上传了。

解决方案: 将curl句柄 CURLOPT_SAFE_UPLOAD 设置为false。


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值