2017 © Pedro Peláez
 

library curl-multi

Multi threaded curl requests

image

tlens/curl-multi

Multi threaded curl requests

  • Monday, December 19, 2016
  • by TLENS
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

CurlMulti

Multi threaded curl requests, (*1)

Usage examples

include 'CurlMulti.php';
$microtime = microtime(true);
function getCurlHandle($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    return $ch;
}
$allTime = 0.0;

for ($i = 0; $i <= 100; $i++) {
    $ch = getCurlHandle("https://www.youtube.com/results?search_query=request+$i");
    curl_setopt($ch, CURLOPT_NOBODY, true);
    $chm = new CurlMulti($ch);
    $chm->callbackOk = function ($content, $info) use (&$allTime) {
        $allTime += $info['total_time'];
    };
}
CurlMulti::exec();
echo "php execute time: " . round(microtime(true) - $microtime, 2) . PHP_EOL;
echo "all curl times:" . round($allTime, 2) . "s.\n";
exit;
  • Result

php execute time: 11.15, (*2)

all curl times:921.3s., (*3)

The Versions

19/12 2016

dev-master

9999999-dev

Multi threaded curl requests

  Sources   Download

The Requires

  • php >=7.0.0
  • ext-curl *

 

curl multi

19/12 2016

1.0

1.0.0.0

Multi threaded curl requests

  Sources   Download

The Requires

  • php >=7.0.0
  • ext-curl *

 

curl multi