Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak rozpoznać, czy plik istnieje na serwerze?
Forum PHP.pl > Forum > Przedszkole
masterinfo
Mam następujący problem - mam skrypt, który odwołuje się do różnych plików na różnych serwerach. Muszę sprawdzić, czy plik istnieje przed odwołaniem się do niego, bo inaczej wywala błąd. Początkowo myślałem, żeby zrobić tak:
  1. <?php
  2.  
  3. $plik='http://nazwa_plikui';
  4. if file_exists($plik)
  5. {
  6. $lines = file($plik); 
  7. /*
  8. Potem następowały czyności związane z analizą pliku
  9.   */
  10. }
  11.  
  12. ?>


Niestety - tak nie zadziała - zdaje się, że file_exists() działa tylko dla plików lokalnych. Nie mam również możliwości zastosować cURL.

Czy istnieje jeszcze jakiś sposób na sprawdzenie, czy plik istnieje w sieci?
hwao
Tak sie tego nie zrobi,

Otworz polaczenie np fsockopen" title="Zobacz w manualu php" target="_manual()
I sprawdz czy serwer nie zwraca 404, jak jest w naglowku to znaczy ze pliku nie ma
masterinfo
Kod
Warning: fsockopen() [function.fsockopen]: unable to connect to http://........:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured php?) in /home/info/public_html/xml_simple.php on line 2

Czy trzeba coś zmienić w php.ini? Nie wiem już sam....
hwao
zle, uzywasz - poczytaj w manualu jak...
masterinfo
Ok, dzięki. Znalazłem w manualu funkcję, która wykrywa, czy plik jest, czy go nie ma korzystając z fsockopen(). Okazało się, że to trochę większa filozofia niż myślałem na początku, ale jakoś się udało. Trzeba było najpierw rozbić cały adres na domenę i ścieżkę, a ja próbowałem wszystko razem wrzucić do fsockopen().
Dzięki jeszcze raz aarambo.gif
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.