Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: можно ли проверить существование файла на чужом сервере?
 
 автор: elenaki   (15.10.2004 в 13:12)   письмо автору
 
 

можно ли средствами PHP проверить существование файла на чужом сервере?
мне дали возможность таскать картинки для магазина, дали путь, имена файлов
составляются из кода продукта + .jpg (всегда). но бОльшая часть картинок отсутствует.
как бы мне не выводить <img src>, если файла нет? делаю проверку:

if (file_exists("http://www.imagesite.gr/prodimages/".$id.".jpg"))


но тогда не выводит вoобще ничего, даже когда есть картинка. условие не выполняется.

   
 
 автор: elenaki   (15.10.2004 в 13:23)   письмо автору
 
   для: elenaki   (15.10.2004 в 13:12)
 

нашла это.

Функция file_exists() не работает с удаленными файлами, файл должен находиться в доступной для сервера файловой системе.


проблема остается. качать картинки к себе на сервер не хочу. показывать кресты
вместо картинок - тоже.

   
 
 автор: cheops   (15.10.2004 в 13:35)   письмо автору
 
   для: elenaki   (15.10.2004 в 13:23)
 

Хм... всё-равно что-то качать придётся - может не всю картинку, а только небольшую её часть, так как информация о том, есть файл или нет находится в памяти удалённой машины - туда никогда не пробраться (почти... и лучше этого не делать :), следовательно нужно будет работать по 80 порту.

А картинок много и большой ли их объём, и сколько на страницу выводится?
Попробуйте загрузить для начала ответ сервера, когда происходит обращение для заведомо несуществующей картинки - нельзя ли как за него регулярным выражением зацепиться, если конечно приемлемо перед загрузкой каждой картинки загружать несколько десятков байт (правда если на удалённом сервере ситуация не обрабатывается время может ожидания может получиться слишком большим :().

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=494&page=1

   
 
 автор: elenaki   (15.10.2004 в 15:25)   письмо автору
 
   для: cheops   (15.10.2004 в 13:35)
 

сделала, как тут написано.
  
function openpage($link) 
   {  $fd = @ fopen($link, "r"); 
      if (!$fd) return false;
      else return true;
      fclose ($fd);    
      } 


только добавила подавление вывода ошибок, а то, если файла не было, он ругался и останавливался
еще до входа в цикл. теперь мне выводит только картинки. но не все. :( ругался, что превышено
время (30 сек), поставила ему

ini_set('MAX_EXECUTION_TIME', 900);


но все равно, через 30 сек перестает искать и выводит то, что успел найти. штук 20.
меня терзают смутные сомнения. а не меняют ли они там, на сервере, свои картинки как раз в
этот момент? у меня есть файл, который вывел мне на экран все товары, имеющие картинки.
пробую сейчас открыть фотку, которая у меня точно есть, а теперь ее нет на сервере! полезла
по FTP, где архивы лежали, и их нет! черт! ну как с ТАКИМИ можно работать??? :(((

   
 
 автор: cheops   (15.10.2004 в 18:50)   письмо автору
 
   для: elenaki   (15.10.2004 в 15:25)
 

Хм... а они их там не динамически генерируют или это фотографии?

   
 
 автор: cheops   (15.10.2004 в 13:37)   письмо автору
 
   для: elenaki   (15.10.2004 в 13:23)
 

Кстати, никак FTP-доступ к каталогу с картинками получить нельзя? Это бы здорово упростило жизнь.

   
 
 автор: elenaki   (15.10.2004 в 14:12)   письмо автору
 
   для: cheops   (15.10.2004 в 13:37)
 

по FTP доступен только zip с картинками (больше 10М), качать к себе смысла нет. архив
часто обновляется, поэтому и хотелось бы брать уже разархивированные картинки именно
для тех товаров, которые будут у нас. товаров в базе 3815, картинок - 1326. они маленькие.

   
 
 автор: cheops   (15.10.2004 в 19:35)   письмо автору
 
   для: elenaki   (15.10.2004 в 14:12)
 

/*Уныло*/ Да... многовато.
Хм... кстати, они сами-то эту проблему как обходят (быстрая смена изображений) - у них на сайте всё впорядке? Может обходить их сайт и смотреть какие картинки есть и запрос осуществлять только по ним... Только это уже получается что-то вроде мини-поискового робота :)

   
 
 автор: elenaki   (16.10.2004 в 13:10)   письмо автору
 
   для: cheops   (15.10.2004 в 19:35)
 

сделала. но очень долго приходится ждать, пока откроется страница.

надеюсь, что все-таки не понадобится такой подход (с проверкой существования файла). они клянутся, что скоро сделают все правильно. если фотка есть в таблице фоток, то есть и сервере. тогда надо будет только найти по id товара его фотку и если там есть path (раньше файлы были с именами типа id.jpg), то есть и фотка, можно смело вешать ее. подождем. то, что греки обещают сделать завтра ...

off-topic. наверно, им очень смешно было читать в "Унесенных ветром": "Я подумаю об этом завтра" (в фильме эта фраза не так часто звучала). особенно, когда Скарлетт на самом деле думала об этом на следующий день. для греков "Я подумаю (сделаю, решу) завтра " означает - "Никогда. Отстань и не отвлекай меня от более важных дел." :)

   
 
 автор: Кузнецов М.В.   (16.10.2004 в 13:53)   письмо автору
 
   для: elenaki   (16.10.2004 в 13:10)
 

>off-topic. наверно, им очень смешно было читать в "Унесенных
>ветром": "Я подумаю об этом завтра" (в фильме эта фраза не
>так часто звучала). особенно, когда Скарлетт на самом деле
>думала об этом на следующий день. для греков "Я подумаю
>(сделаю, решу) завтра " означает - "Никогда. Отстань и не
>отвлекай меня от более важных дел." :)

:)))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования