Этот метод возвращает размер файла robots.txt:
//return byte
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_exec($ch);
$filesize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
if ($filesize) return $filesize;
Для всех сайтов, кроме одного мне возвращается нормальный размер типа 84 или 165 байт, например. Но в одном случае -1. Вот ещё один метод:
$file = fopen('robots.txt', 'w');
// инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FILE, $file);
curl_exec($ch);
fclose($file);
curl_close($ch);
$resultFile = 'robots.txt'; // файл, который получили
if (!file_exists($resultFile)) {
// Если файл отсутвует, сообщаем ошибку
echo "Файл robots.txt отсутствует.";
} else {
echo "Файл robots.txt присутствует." . "\n";
// Начинаем обрабатывать файл, если все прошло успешно
$textget = file_get_contents($resultFile);
htmlspecialchars($textget);
if (preg_match("/Host/", $textget)) {
echo "Директива Host есть" . "\n";
} else {
echo "Директивы Host нет";
}
echo 'Размер файла ' . $resultFile . ': ' . $this->remoteFileSize($url . "/robots.txt") . ' байт';
}