Home » Php » parallel downloads in PHP

parallel downloads in PHP

Posted by: admin July 12, 2020 Leave a comment


I want to download (or simply file_get_contents) for 5 places. I wait say 1.2 sec for each that means in total 1.2X5=6 seconds. I want to save waiting time. I thought I could wait 1.3 sec is enough. How can I approach?

How to&Answers:

You can use the curl_multi_* functions to achieve parallel downloads.


this is possible but only by creating multiple threads outside PHP

With PHP scripts run in a single thread, meaning that it can only do 1 task at a time, the only way you can do this with PHP is by creating / using an external application installed / placed on your server and using exec to do this and waiting for a response from the exec, or using the fork_* functions to be able to dip and dive in and out of threads.


To get you started you can run the downloads in parallel by forking them into the background using php’s popen: http://www.php.net/manual/en/function.popen.php



btw. you’re looking for non blocking connections.