PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

PHPBuilder.com: PHP Multithreading with cURL

Note: This article was originally published at PHPDeveloper on 11 June 2011.
PHPDeveloper

On PHPBuilder.com Jason Gilmore has posted a new tutorial about how to handle a more true version of multi-threading (non-native, of course) in a PHP application making HTTP requests. His method uses cURL, the popular extension that make working with socket connections a lot simpler.

This article explains an alternative solution that consists of sending multiple HTTP requests to the same Web server on which PHP is running. Each HTTP request triggers the execution of a different task. Many requests can be run at the same time without having to wait for each one to finish. [...] As you may know, PHP has no native support for multithreading like Java, but using the cURL extension makes multithreading possible in PHP.

He introduces cURL a bit, talking about the protocols it supports and how to check and see if you have the extension installed. He then walks through a sample connection, calling curl_setopt and curl_exec to fetch a remote page from a website. The real fun comes in when you use the curl_multi_add_handle and curl_multi_exec methods to run more than one request in parallel.