Forum Webscript.Ru

Программирование => PHP => Тема начата: ZeRo от 23 Апреля 2003, 12:19:31

Название: Загрузка картинок.
Отправлено: ZeRo от 23 Апреля 2003, 12:19:31
Всем привет. Сделал я тут такую тему что на сайте выводится изображение веб камеры (ее снимок). Естественно камера не у меня дома а ..... короче раскиданы по всему свету. Дак вот к выводу изображения из камеры можно просто обратится



Оно будет динамично..... и все время обновляться.
А что если сервак закрыт-> Картинка недоступна-> Виснет весь сайт.

Дак я тут и так и сяк пробовал. Но если изображения нет то сайт висит.

Если у кого есть какие-либо соображения по этому поводу !!!
Название: Загрузка картинок.
Отправлено: MrGreeN от 23 Апреля 2003, 12:26:36
if(наличие картинки) грузить;
else не грузить (с выводом сообщения о временной нетрудоспособности);
Название: Загрузка картинок.
Отправлено: semya от 23 Апреля 2003, 12:37:48
ZeRo
а как это сайт висит?
если я напишу то у на сайте лишь увижу крестик красный или еще какой маркер что картинка не подгрузилась... но сайт работоспособен будет вполне...

действительно просто необходимо делать проверку на наличие этой картинки на другом серваке, но это по-моему тоже не так просто.... как if (есть картинка)....

я бы сначала CRONом запускал скрипт, который копирует картинку ко мне на сервер, если она доступна, а если нет, то отсается старая - таким образом всегда будет какая-то картинка видна...
Название: Загрузка картинок.
Отправлено: MrGreeN от 23 Апреля 2003, 13:27:04
Угу... (я просто нексколько упростил проблемку)...
Название: Загрузка картинок.
Отправлено: ZeRo от 24 Апреля 2003, 12:15:02
Да щас. Если картинку грузить с другого сайта и она грузится из отдельного меню (меню организовано как функция) , то все остальные меню не выводятся (те которые после него)..... и даже если скрипт поймет что картинка 404 это будет не раньше чем митут так через 5.
Название: Загрузка картинок.
Отправлено: ZeRo от 24 Апреля 2003, 12:18:03
Кстати да насчет CRONа идея хорошая .... только как насчет отлавливания ошибки 404? Если это страница то все понятно .... а как поступать с картинками? И что на крон ставить с интервалом в 1 минуту ?
Название: Загрузка картинок.
Отправлено: ZeRo от 24 Апреля 2003, 12:21:12
Короче смотрите сами. Лично для вас я открыл сайт.

http://www.eportal.ru

Если он не будет грузиться .... через минуту нажмите остановку.... как раз он догрузится до webкамер.
Название: Загрузка картинок.
Отправлено: semya от 24 Апреля 2003, 13:36:02
я че то не пойму в чем проблема....

int copy ( string source, string dest)
Makes a copy of a file. Returns TRUE if the copy succeeded, FALSE otherwise.


если файла не существует получишь FALSE, а если существует то резльтрующий файл перезапишется
Название: Загрузка картинок.
Отправлено: ZeRo от 24 Апреля 2003, 14:35:04
Ну я сделал как сказал 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]

";


... Ну тут уменьшение картинки еще.

ВСЕ ХОРОШО ТОЛЬКО КТОНИТЬ ПОДУМАЛ СКОЛЬКО ЭТО ГРУЗИТСЯ (на сайт я это пока не выложил). Как вы заметили он два раза делает загрузку изображени... притом один раз сохраняя его. А мне что нужно ПРОСТО ПРОВЕРИТЬ ЕСТЬ ОНА ТАМ ИЛИ НЕТ.
Название: Загрузка картинок.
Отправлено: semya от 24 Апреля 2003, 19:10:03
ZeRo
если хоститься твой сайт будет не на модемном коннекте, то скачать с другого сайта 5 килобайт не составит труда и не займет много времени.... а если тебе просто надо ее проверять, то зачем ресайз делать? делаешь copy, если ок, то есть картинки, если нет, то нету ее там...
Название: Загрузка картинок.
Отправлено: ZeRo от 24 Апреля 2003, 21:01:31
Ну да ... а ты на сайте был? Посиотри сам поймеш зачем ресайз... они же 800x600.
Название: Загрузка картинок.
Отправлено: Mog. от 25 Апреля 2003, 08:14:51
Цитировать
ZeRo:
они же 800x600
А ты сам то был там :) Они далеко не все 800х600
Название: Загрузка картинок.
Отправлено: ZeRo от 25 Апреля 2003, 17:31:21
Конечно не все для этого мне и нужен ресайз. Многие 750x600 или чего еще хуже.


Так что никто не знает как это сделать?
Название: Загрузка картинок.
Отправлено: FreeSpace от 26 Апреля 2003, 13:40:31
Похоже это то, что тебе нужно:

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 не проводил, например можно добавить разную реакцию на разные заголовки, но принцип думаю ты понял.
Если что - могу подробно объяснить, как это работает.