Здравствуйте. Такая проблема,
Имеем скриншотера сайта:
<?PHP
function SiteScreenshot($url, $resolution='1024x768', $size='200', $format='png') {
$Filename = md5($url.$size.$resolution).".jpg";
// Директория где лежат скрины
$ScreenshotDirectory = "screens/";
// Проверяем если есть такой файл в папке скринов
if(@is_file($ScreenshotDirectory.$Filename)) {
return $ScreenshotDirectory.$Filename;
}
else {
$Image = @file_get_contents("http://mini.s-shot.ru/".$resolution."/".$size."/".$format."/?http://".$url);
$OpenFile = fopen($ScreenshotDirectory.$Filename, "w+");
// Сохраняем изображение
$Write = fwrite($OpenFile, $Image);
return $ScreenshotDirectory.$Filename;
}
?>
=
Но если сайт не доступен, то изображение сохраняется, которого нет... Как сделать если сайт не доступен то Выводилось вместо этого напимер: echo '<img src="/error.png" alt="" />'; ?
Заранее спасибо
Для начала определись, что такое "Сайт недоступен".
Пустая строка возвращается или что?
Дык если так, не скринь его
делай проверку перед записью
if(!empty($Image))
А на выводе
if(!file_exists($ScreenshotDirectory.$Filename))echo '<img src="/error.png" alt="" />';
Перед возвращением результата проверку добавь[php:1:75e8bec268]if(getImageSize($ScreenshotDirectory.$Filename))
{
return $ScreenshotDirectory.$Filename;
}
else
{
unlink($ScreenshotDirectory.$Filename);
return FALSE;
}[/php:1:75e8bec268]
FiXleR, смотри get_headers().
нашел у себя в архивах такую функцию.
[php:1:8aa2cc9491]<?php
function get_http_code($url) {
$headers = get_headers($url);
return $headers === FALSE ? FALSE : (int)substr($headers[0], 9, 3);
}
var_dump(get_http_code('http://google.com')); //int(200)
var_dump(get_http_code('http://dpawdgasdasw.com')); //bool(false)
?>[/php:1:8aa2cc9491]
Давно очень писал. Должна ещё работать.
если код возврата 2** - значит всё ок.
Список кодов состояния HTTP