Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проверка файла на удаленном сервере
Форумы портала PHP.SU » PHP » Программирование на PHP » Проверка файла на удаленном сервере

Страниц (1): [1]
 

1. Rusan - 09 Апреля, 2008 - 23:04:16 - перейти к сообщению
Как реализовать такую вещь: Скрипт проверяет существование файла на удаленном сайте http://test[dot]ru файл например http://test[dot]ru/file[dot]txt и если его нет, то выводит ошибку.

Перепробовал много, но пока ни чего не выходит.
2. bsod - 10 Апреля, 2008 - 04:02:58 - перейти к сообщению
if($f!=fopen('sait.com/fail.txt')){
echo "нету файла";
}
else{
echo "файл есть";
fclose($f);
}
3. Rusan - 10 Апреля, 2008 - 23:38:30 - перейти к сообщению
Parse error: syntax error, unexpected '{' in /mounted-storage/.../index.php on line 50
Возникает здесь - if($f!=fopen('sait.com/fail.txt'){
4. SION-ZENIT - 11 Апреля, 2008 - 23:24:16 - перейти к сообщению
CODE (text):
скопировать код в буфер обмена
  1. if($f!=fopen('sait.com/fail.txt'))
  2. {
  3. echo "нету файла";
  4. }
  5. else
  6. {
  7. echo "файл есть";
  8. fclose($f);
  9. }
5. valenok - 12 Апреля, 2008 - 17:34:26 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. if($f=fopen('http://sait.com/fail.txt'))
  5. {
  6. echo "есть файла";
  7. fclose($f);
  8. }
  9.  
  10.  
6. KRBinUA - 17 Апреля, 2011 - 18:56:41 - перейти к сообщению
Rusan пишет:
Как реализовать такую вещь: Скрипт проверяет существование файла на удаленном сайте http://test[dot]ru файл например http://test[dot]ru/file[dot]txt и если его нет, то выводит ошибку.

Перепробовал много, но пока ни чего не выходит.



Постоянно читаю сайт и форум, мог бы уже дать несколько практических советов, но это моё первое сообщение.

У меня была сходная задача.
Автора материалов добавляют текст и к нему картинки находящиеся на их сайтах.
Эти сайты могут сбоить или вообще нужный файл исчезать.
Используем картинку с других сайтов, но если её нет, то и отображать не надо.

То есть проверить наличие файла и использовать его. Если файла нет, то игнорировать его.

Практическое решение:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3.  
  4. $foto='http://krb.in.ua/img/perokrb.png';
  5. if($f=@fopen($foto, 'rb'))
  6. {
  7. echo('<noindex><img src="'.$foto.'" alt="" border="0" style="float:left; padding:7px; width:30px" rel="nofollow" /></noindex>');
  8. fclose($f);
  9. }
  10. else { echo('Ну нету файла хозяин!(:');}
  11. unset($foto); //Разрушаем переменную.
  12. unset($f); //Разрушаем переменную.
  13.  
  14.  
  15. //@ блокирует вывод сообщения об ошибке.
  16. // по материалам http://www.php.su/functions/?fopen
  17.  
  18. ?>


Эта часть кода способна самостаятельно проверить есть ли файл, выполнить действие если есть. Если нет файла, @ перед fopen блокирует вывод сообщения об ошибке.

Вобщем проблема решена! Радость
Практически используется на сайте статей krb[dot]in[dot]ua

Если немного продолжить, то можно организовать сохранение файла в нужную папку у себя на сервере.
7. NeuroZ - 05 Июля, 2016 - 10:26:32 - перейти к сообщению
А можно вопрос - зачем в данном примере использовать fclose ?
Ведь если его не использовать, то все равно код отработает как надо.

Вопрос возник в связи с минимизацией условия в одну строку
CODE (htmlphp):
скопировать код в буфер обмена
  1. $a = ($f=fopen($file)) ? $file : 'a';
8. Viper - 05 Июля, 2016 - 15:57:01 - перейти к сообщению
NeuroZ в гугле поиск по why i should use fclose? решит ваши проблемы

 

Powered by ExBB FM 1.0 RC1