Как заменить Curl на Curl Multi в PHP? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть этот код, чтобы проверить, существуют ли некоторые файлы на веб-сайте. Если какие-либо файлы найдены, ссылки на эти файлы должны быть отображены. Хотя сценария достаточно для выполнения задачи, обработка занимает много времени. Поэтому я хотел бы использовать curl-multi вместо curl, что я не знаю, как. Можете ли вы помочь, пожалуйста?

<form method="get" action="">
        <p><input name="siteinfo"; "placeholder="www.example.com" required="required"/></p>
        <p><input type="submit" value="Get files" id="qr-gn"></p>
</form>

<?php
if(isset($_REQUEST['siteinfo'])) 
{
$input = ($_REQUEST['siteinfo']);

// in case scheme relative URI is passed, e.g., //www.google.com/
$input = trim($input, '/');
// If scheme not included, prepend it
if (!preg_match('#^http(s)?://#', $input)) {
       $input = 'http://' . $input;
}
$urlParts = parse_url($input);
// remove www
$domain = preg_replace('/^www\./', '', $urlParts['host']);

$urls=array("https://www.".$domain,"http://www.".$domain,"https://".$domain,"http://".$domain);
$files=array("wp-login.php","license.txt","readme.html");
foreach ($urls as $url)
{
    foreach ($files as $fil)
    {
$ch = curl_init($url."/".$fil);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// $retcode >= 400 -> not found, $retcode = 200, found.
curl_close($ch);
if ($retcode==200)
{echo "<a href='$url/$fil'>$url/$fil</a>"."<br>";}
    }
} 
}
?>

Я хочу изменить curl на curl-multi здесь:

$ch = curl_init($url."/".$fil);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
...