Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy plik istnieje (przez URL)
Forum PHP.pl > Forum > Przedszkole
intol
Jak sprawdzić w php czy plik istnieje (np. dostaję ścieżkę http://jakisserwer.com/plik.gif) ? Próbowałem przez fopen, ale dostaję taki komunikat:
Kod
Warning: fopen(): URL file-access is disabled in the server configuration in /home/x/public_html/x.php on line 3
.
Z góry dziękuję za odpowiedź.
ksiazeee
file_exists('nazwa_pliku); tongue.gif
dr_bonzo
Cytat
URL file-access is disabled in the server configuration

W php.ini jest ustawione:
Cytat
Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = Off

Nie mozesz traktowac URLi (http://....) jak zwyklych plikow, tzn nie zadziala ci fopen, file_exists, itd.
Mozesz otwierac pliki znajdujace sie tylko na serwerze na ktorym masz skrypt.
Gość_chutch
w porządku, ale ja mam taki problem, że muszę sprawdzić tylko to, czy plik istnieje na jakims innym serwerze... Jest taka mozliwość?
sobstel
Cytat(Gość_chutch @ 2005-05-07 22:06:30)
w porządku, ale ja mam taki problem, że muszę sprawdzić tylko to, czy plik istnieje na jakims innym serwerze... Jest taka mozliwość?

mozna wykorzystac curla i probowac odczytac kod odpowiedzi. minus tej metody jest taki ze serwer nie zawsze zwraca 404 gdy nie ma pliku.
Chutch
hmm... a ułatwiło by sprawę sprawdzanie czy plik znajduje się na ftp ? (mając login i hasło)
michaloo
Nie ma odpowiednika file_exists() dla polączeń ftp, ale można to zrobić trochę bardziej okrężną drogą:
  1. <?php
  2.  
  3. //otwarcie polaczenia z serwerem
  4. $ftp = ftp_connection('nazwa_serwera');
  5.  
  6. //zalogowanie
  7. ftp_login($ftp, 'login', 'haslo');
  8.  
  9. //odczytanie listy plikow w danym katalogu (w tym przypadku bedzie to katalog, w ktorym sie aktualnie znajdujemy (.)
  10. $fileList = ftp_nlist($ftp, '.');
  11.  
  12.  
  13. // I teraz w petli sprawdzasz nazwy plikow
  14.  
  15.  
  16. ?>


Pewnie można to zrobić szybciej i ogólnie lepiej ale tylko takie rozwiązanie nawiedziło moją głowę winksmiley.jpg
Ostatnio się tymi eftepowymi klockami bawiłem i stwierdziłem, że nie każda próba logowania się udaje dlatego wrzuciłem ją w pętle. Podejmuje pięć prób z 2 sekundowym interwałem.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.