我在通过POST请求将数据传递到PHP后端时收到php://input
的不完整数据。我确信我正确传递了数据,因为我在Fiddler中进行了检查。我使用Postman向我的后端发送数据请求。
问题是我收到的XML要发布到我的后端是不完整的,它是从它下面的特定行中删除的。 PHP.ini中是否有PHP指令设置了我能够传递的字符数?
我的post_max_size = 64M
就是这个。
答案 0 :(得分:1)
不,我从来没有见过任何限制你可以通过帖子发送的字符数的php.ini指令,而不是memory_limit, upload_max_filesize和post_max_size
您可能会遇到的最常见错误是未正确编码的字符,通常是安培符号"&"或其中一个方差,
您也可以通过使用不同的内容类型来获得一些改进,例如" multipart / form-data"," application / x-www-form-urlencoded"或" text / plain"
现在你要比较从php:// input vs $ _POST获得的内容, 当你使用php://输入你的较低级别时,你可能正在使用fread()或fgets(),这些函数只读取一次一定数量的字符,所以你要么必须指定第二个参数(这些函数的长度,或者你必须循环这些函数,直到你读完所有的数据
也许是这样的
$handle = fopen("php://input", "rb");
$contents = '';
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
现在它取决于你对这些数据做了什么,在大多数情况下使用$ _POST是你最好的选择