Forum Webscript.Ru
Программирование => PHP => Тема начата: ZeRo от 23 Апреля 2003, 12:19:31
-
Всем привет. Сделал я тут такую тему что на сайте выводится изображение веб камеры (ее снимок). Естественно камера не у меня дома а ..... короче раскиданы по всему свету. Дак вот к выводу изображения из камеры можно просто обратится
Оно будет динамично..... и все время обновляться.
А что если сервак закрыт-> Картинка недоступна-> Виснет весь сайт.
Дак я тут и так и сяк пробовал. Но если изображения нет то сайт висит.
Если у кого есть какие-либо соображения по этому поводу !!!
-
if(наличие картинки) грузить;
else не грузить (с выводом сообщения о временной нетрудоспособности);
-
ZeRo
а как это сайт висит?
если я напишу то у на сайте лишь увижу крестик красный или еще какой маркер что картинка не подгрузилась... но сайт работоспособен будет вполне...
действительно просто необходимо делать проверку на наличие этой картинки на другом серваке, но это по-моему тоже не так просто.... как if (есть картинка)....
я бы сначала CRONом запускал скрипт, который копирует картинку ко мне на сервер, если она доступна, а если нет, то отсается старая - таким образом всегда будет какая-то картинка видна...
-
Угу... (я просто нексколько упростил проблемку)...
-
Да щас. Если картинку грузить с другого сайта и она грузится из отдельного меню (меню организовано как функция) , то все остальные меню не выводятся (те которые после него)..... и даже если скрипт поймет что картинка 404 это будет не раньше чем митут так через 5.
-
Кстати да насчет CRONа идея хорошая .... только как насчет отлавливания ошибки 404? Если это страница то все понятно .... а как поступать с картинками? И что на крон ставить с интервалом в 1 минуту ?
-
Короче смотрите сами. Лично для вас я открыл сайт.
http://www.eportal.ru
Если он не будет грузиться .... через минуту нажмите остановку.... как раз он догрузится до webкамер.
-
я че то не пойму в чем проблема....
int copy ( string source, string dest)
Makes a copy of a file. Returns TRUE if the copy succeeded, FALSE otherwise.
если файла не существует получишь FALSE, а если существует то резльтрующий файл перезапишется
-
Ну я сделал как сказал semya .... получилось что-то типа
$file="$row1[link]";
$file_server=\'images/temp_cam.jpg\';
if (!copy($file,$file_server)) {
$file_ext=\'images/no.jpg\';
}
else
{
$file_ext=$file;
}
{
$im="$file_ext";
$a=getimagesize($im);
$height = 238;
$temp = $a[1]/$a[0];
$width = 238*$temp;
echo "";
echo " $row1[place]
";
... Ну тут уменьшение картинки еще.
ВСЕ ХОРОШО ТОЛЬКО КТОНИТЬ ПОДУМАЛ СКОЛЬКО ЭТО ГРУЗИТСЯ (на сайт я это пока не выложил). Как вы заметили он два раза делает загрузку изображени... притом один раз сохраняя его. А мне что нужно ПРОСТО ПРОВЕРИТЬ ЕСТЬ ОНА ТАМ ИЛИ НЕТ.
-
ZeRo
если хоститься твой сайт будет не на модемном коннекте, то скачать с другого сайта 5 килобайт не составит труда и не займет много времени.... а если тебе просто надо ее проверять, то зачем ресайз делать? делаешь copy, если ок, то есть картинки, если нет, то нету ее там...
-
Ну да ... а ты на сайте был? Посиотри сам поймеш зачем ресайз... они же 800x600.
-
ZeRo:
они же 800x600
А ты сам то был там :) Они далеко не все 800х600
-
Конечно не все для этого мне и нужен ресайз. Многие 750x600 или чего еще хуже.
Так что никто не знает как это сделать?
-
Похоже это то, что тебе нужно:
function url_exists($server, $path, $port=80, $timeout=30){
$fp = fsockopen ($server, $port, $errno, $errstr, $timeout);
if (!$fp) {
return false;
} else {
fputs ($fp, "GET ". $path ." HTTP/1.0\\r\\nHost: ". $server ."\\r\\n\\r\\n");
$headers = "";
while (!feof($fp)){
$headers .= fgets ($fp,128);
if (strlen($headers) > 1024)
break;
}
fclose ($fp);
$header = explode("\\r\\n\\r\\n", $headers);
$header = explode("\\r\\n", $header[0]);
if (strstr($header[0], "200 OK")){
//Раскомментируй следующую строчку, если хочешь получать сам заголовок типа HTTP/1.0 200 OK
//return $header[0];
return true;
} else {
return false;
}
}
}
echo url_exists(\'forums.webscript.ru\', \'/img/logo.gif\');
Extensive testing не проводил, например можно добавить разную реакцию на разные заголовки, но принцип думаю ты понял.
Если что - могу подробно объяснить, как это работает.