【问题标题】:PHP cURL post without returning page contentPHP cURL post 不返回页面内容
【发布时间】:2010-09-30 05:03:26
【问题描述】:

是否可以使用 PHP 进行 cURL 发布,发布我的值数组并仅返回 curl_getinfo 数据但不返回页面内容?这是我目前正在使用的示例;它将页面内容返回到一个变量中。

但是,每次返回页面内容时都会占用大量带宽。我正在尝试减少我使用的带宽量;我真正需要的只是 curl_getinfo 数据。

添加 CURL_TIMECOND_IFMODSINCE 会完成此操作吗? (我发布的页面很少更改)

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);

$post_data = array();
$post_data["name"] = $name;
$post_data["age"] = $age;

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);

【问题讨论】:

  • 你控制你发布到的服务器吗?
  • 在一定程度上。这是一个共享服务器;但我要发布到我的另一个域。
  • 我的意思是,您是否有完全访问权限来更改您发布到的服务器上的脚本?你还想得到什么样的回应?
  • 是的,我拥有更改我要发布到的服务器上的脚本的完全权限。我不想要任何回应。我希望它只发布数据。我所有的跟踪工作都是通过接收端的脚本完成的。

标签: php curl


【解决方案1】:

<pre>curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);</pre> 用于返回输出 <pre>$output = curl_exec($ch);</pre> 将 CURLOPT_RETURNTRANSFER 设置为 false 以便它不会。 <pre>curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);</pre>

【讨论】:

    【解决方案2】:

    没有。您需要让服务器不报告数据。

    您可以尝试向标头添加范围请求...但我怀疑动态页面会尊重这一点。

    【讨论】:

      【解决方案3】:

      我不认为

      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); 
      

      会有所帮助,因为这仅允许您在调用 curl_exec() 时在变量中捕获响应。它不会阻止目标服务器在您发送数据时回复您。

      由于您需要使用 POST 来发送数据,您唯一的选择似乎是修改目标脚本,使其不会响应让您担心带宽的数据。也许只是添加一个可选标志来抑制远程主机上的脚本输出?

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 2013-10-22
        • 1970-01-01
        • 2015-12-16
        • 2021-07-07
        • 1970-01-01
        • 2012-02-15
        • 2020-08-16
        • 2012-12-16
        相关资源
        最近更新 更多