php版 post数据提交数据量大小限制的终极解决办法

目录

问题描述:

解决过程:

解决办法:


问题描述:

今天客户反应了一个问题,平常提交的数据量较小,可以直接提交。但是后来提交的数据量大了之后始终提交不了。后台查找订单数据也查不到,居然毛都查不到,提交不了,肯定订单数据是没有。

分析接收的数据:

先看发送的数据,仔细查看了没毛病啊。

 接收的数据:

 仔细查看,发现接收的数据到了最后居然不完整,后面的都没有了。

解决过程:

(1)、检查ajax端提交方式,确认是 post。

(2)、检查 php 配置文件中关于 post 数据量限制的选项,发现设置的都很大,这点数据根本没达到上限啊 。

(3)、我使用的是apache2, phpstudy版的有个参数,但是感觉不太挨边。

(4)、网上找资料,大多数人的解决办法都是设置 php 参数,没有找到符合要求的,没办法,自己研究吧。

解决办法:

(1)、改造 ajax 端上传参数样式:

 let str = JSON.stringify(o);

将此对象参数变为 JSON 格式的。

let params = {"pm" : str};

重新组装,再次传递。

(2)、改造 php 后台端的

首先变成 JSON 格式传送后,前端传过来的json数据有时候会被转化成

$str='[{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":"http://shimao-smt.oss-cn-hangzhou.aliyuncs.com/1539862260910574983338757651936.jpg"}]';
//json_decode($str);会将json字符串转化成object对象形式, json_decode($str,true);则会转化成数组

这个时候使用 json_decode($str,true);是不会成功的,只会输出null,这个时候就需要转化被编译的单双引号了。

echo htmlspecialchars_decode($str);
$str将会被转化成正常的json字符串,如

$str=[{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":""},{"srctype":"0","srcurl":"http://shimao-smt.oss-cn-hangzhou.aliyuncs.com/1539862260910574983338757651936.jpg"}]

这个时候就可以使用 json_decode($str,true);将其转化成数组了;

返回过来将单双引号咋转化成html格式化

使用php函数 htmlspecialchars($str);

这样改造完成之后,再次查看接收的效果。

 这下数据都能出来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值