POST变量无需等待执行结束端脚本

时间:2015-04-29 09:35:38

标签: php curl

我有这种情况......
我正在使用CURL将一些变量发布到远程主机。下面你可以看到我的PHP脚本如何:
本地PHP脚本:

$url = 'http://somesite.com/something.php';
data = array ('key1' => 'string1',
          'key2' => 'string2',
          'key3' => 'string3');
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);
curl_exec ($ch);
curl_close ($ch);
// Some code to do other stuff.

远程PHP脚本:

$string1 = $_POST['key1'];
// If this string exists in a very big folder of text files.
sleep(30);
// Do something with the file that contain the string.

我的问题是本地php脚本正在加载,直到远程脚本完成执行。我的问题是,有没有办法将这些变量POST到该远程主机,然后继续执行脚本?使用CURL不是强制性的,但我想要一个PHP解决方案。谢谢!

1 个答案:

答案 0 :(得分:0)

为代码添加超时:

curl_setopt($ch, CURLOPT_TIMEOUT, 1);

这将在1秒后继续执行代码的其余部分。

  

CURLOPT_TIMEOUT允许cURL函数的最大秒数   执行。

或者您可以将其用于毫秒:

  

CURLOPT_TIMEOUT_MS允许cURL的最大毫秒数   要执行的函数。如果构建libcurl以使用标准系统   名称解析器,连接的那部分仍将使用全秒   超时的分辨率,允许的最小超时时间为一秒。

您可以阅读here的进一步说明。

一旦其他脚本启动,它将继续而不必等待完成输出。