Skip to content

Instantly share code, notes, and snippets.

@duskohu
Last active December 24, 2018 14:18
Show Gist options
  • Save duskohu/d7829a046d6732abab31200447be12da to your computer and use it in GitHub Desktop.
Save duskohu/d7829a046d6732abab31200447be12da to your computer and use it in GitHub Desktop.
curl-multy
<?php
$urls = array(
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59914d4420a17/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991501203db9/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991508463df6/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599150f30d32a/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-598ec4850dd48/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-598df691c7e53/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-598df6511a99e/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-597f621b613cf/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991a9a70b0bf/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991a9dade0a4/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991aa0c13b0e/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991aa394ea02/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991aa65233c0/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991ab180bd75/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991ab314ff93/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991ab4fa6c21/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991ab7db80b3/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991abb08e5ac/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991abd126f72/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991abf73d71c/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991f29be3833/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5991f2cf7057e/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5992b1a20deec/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5992b1d901ecf/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5992b1f597fbe/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5992b22551817/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599349b30a2d5/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599349d6549b4/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599349f64adcd/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936d9c6730a/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936dbd2e2c9/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936df3ab72e/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936e206bca0/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936e47ddf20/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936e6cf08b6/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936eaba0077/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936ed37bedb/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936efab8a34/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936f20be309/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59936f54d1e17/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599404bff3f1d/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599404eb238cb/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599405153e62f/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-599405436deba/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5994056da5f82/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-5994059959022/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59945baee5725/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59945bec61e76/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59945c26d9b02/',
'https://affil.invia.sk/direct/core/tool_xml-feed/download/id/4717246-59945c5513fe7/',
);
$tempDir = 'files-d';
if (!file_exists($tempDir)) {
mkdir($tempDir, 0777);
}
$mh = curl_multi_init();
$ch = array();
foreach ($urls as $key => $value) {
$ch[$key] = curl_init($value);
curl_setopt($ch[$key], CURLOPT_HEADER, FALSE);
curl_setopt($ch[$key], CURLOPT_RETURNTRANSFER, TRUE);
curl_multi_add_handle($mh, $ch[$key]);
}
do {
curl_multi_exec($mh, $running);
curl_multi_select($mh);
} while ($running > 0);
$exception = FALSE;
$info = array();
foreach ($urls as $key => $value) {
$curlError = curl_error($ch[$key]);
$httpCode = curl_getinfo($ch[$key], CURLINFO_HTTP_CODE);
$effectiveUrl = curl_getinfo($ch[$key], CURLINFO_EFFECTIVE_URL);
$info[] = curl_getinfo($ch[$key]);
if ($curlError) {
$exception = $effectiveUrl . ', Item:' . $key . ', Error: ' . $curlError;
curl_multi_remove_handle($mh, $ch[$key]);
break;
} elseif ($httpCode != 200) {
$exception = $effectiveUrl . ', Item:' . $key . ', Status: ' . $httpCode;
curl_multi_remove_handle($mh, $ch[$key]);
break;
} else {
$pathToFile = $tempDir . '/' . $key . '.xml';
$content = curl_multi_getcontent($ch[$key]);
file_put_contents($pathToFile, $content);
// process file
//unlink($pathToFile);
curl_multi_remove_handle($mh, $ch[$key]);
}
}
curl_multi_close($mh);
if ($exception) {
throw new \Exception($exception);
}
echo '<pre>';
var_dump($info);
echo '</pre>';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment