我想知道在PHP中进行并发HTTP请求的最佳方法是什么?我有很多数据需要获取,我宁愿一次性进行多个请求以检索所有数据。
有人知道我该如何做到这一点吗?最好以匿名/回调函数的方式实现...
谢谢,
汤姆。
我想知道在PHP中进行并发HTTP请求的最佳方法是什么?我有很多数据需要获取,我宁愿一次性进行多个请求以检索所有数据。
有人知道我该如何做到这一点吗?最好以匿名/回调函数的方式实现...
谢谢,
汤姆。
但是PHP本身不以任何方式为"multithreaded",除非通过粗略的hack(多个并行脚本、一个脚本通过exec()启动多个后台任务等...)才能实现并行运行。
或者,如果您愿意,您可以将数据发送为json。在php中,您可以将其解构为所有值。例如:
xhttp.open("GET", "gotoChatRoomorNot.php?q=[{"+str+"},{"+user1+"},{"+user2"}]", true);
您可以使用 HttpRequestPool http://www.php.net/manual/de/httprequestpool.construct.php。
$multiRequests = array(
new HttpRequest('http://www.google.com', HttpRequest::METH_GET),
new HttpRequest('http://www.yahoo.com', HttpRequest::METH_GET)
new HttpRequest('http://www.bing.com', HttpRequest::METH_GET)
);
$pool = new HttpRequestPool();
foreach ($multiRequests as $request)
{
$pool->attach($request);
}
$pool->send();
foreach($pool as $request)
{
echo $request->getResponseBody();
}
curl
类似,http
扩展还提供了并发请求的功能,使用HttpRequestPool
类(该类在幕后也只是使用curl)。 - mario