如何在PHP curl中发布大量数据而不增加内存开销?

如何在PHP curl中发布大量数据而不增加内存开销?,php,post,curl,Php,Post,Curl,我目前正在使用PHP curl扩展与一些HTTP API通信 我使用批量加载程序一次执行许多操作。必须使用POST方法调用批量端点,因此我使用如下代码: <?php $h = curl_init($url); curl_setopt(CURLOPT_POST, true); curl_setopt(CURLOPT_POSTFIELDS, $data); curl_setopt(CURLOPT_RETURNTRANSFER, true); $response = curl_exec($h);

我目前正在使用PHP curl扩展与一些HTTP API通信

我使用批量加载程序一次执行许多操作。必须使用POST方法调用批量端点,因此我使用如下代码:

<?php
$h = curl_init($url);
curl_setopt(CURLOPT_POST, true);
curl_setopt(CURLOPT_POSTFIELDS, $data);
curl_setopt(CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($h);
curl_close($h);

使用
CURLOPT\u infle

$curl = curl_init();
curl_setopt( $curl, CURLOPT_PUT, 1 );
curl_setopt( $curl, CURLOPT_INFILESIZE, filesize($tmpFile) );
curl_setopt( $curl, CURLOPT_INFILE, ($in=fopen($tmpFile, 'r')) );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, 'POST' );
curl_setopt( $curl, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json' ] );
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
$result = curl_exec($curl);
curl_close($curl);
fclose($in);

您是否尝试过处理
CURLOPT_infle
?我刚刚看到了答案,我想它工作得很好。我已经尝试过使用
CURLOPT_infle
但是忘记了使用
CURLOPT_CUSTOMREQUEST
来硬设置POST。。。我现在就去检查;)谢谢,不客气。留下你的反馈:)我已经检查过了,它是有效的…你的回答刚刚结束了我一个小时的挣扎,谢谢!究竟为什么我要将请求方法设置为
PUT
,然后再次用
POST
覆盖它?!谁会认为上传只能通过
PUT
进行呢?在我的xampp服务器上,如果我省略了
PUT
行,服务器端的$\u文件是空的。。。所以最好按上面的方法做