У меня есть этот код, чтобы проверить, существуют ли некоторые файлы на веб-сайте. Если какие-либо файлы найдены, ссылки на эти файлы должны быть отображены. Хотя сценария достаточно для выполнения задачи, обработка занимает много времени. Поэтому я хотел бы использовать 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);