Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzanie plików na pozalokalnym serwerze
Forum PHP.pl > Forum > PHP
mieczyk
Czy istnieje możliwość sprawdzenie czy istnieje dany plik na serwerze (nie lokalnym - bo do lokalnego to jest file_exist, ktore na zdalnym nie dziala) ?
Loodki pomórzcie !
steru
Cytat
Czy istnieje możliwość sprawdzenie czy istnieje dany plik na serwerze (nie lokalnym - bo do lokalnego to jest file_exist, ktore na zdalnym nie dziala) ?
Loodki pomórzcie !

$f=fsockopen('www.wp.pl/index.html',80);
if($f) echo 'istnieje';
else echo 'nie istnieje lub blad polaczenia';

oczywiscie plik musi byc w zasiegu danego serwera
mieczyk
steru: niestety podany przez ciebie zapis nie dziala...
ja probowalem to na zasadzie fopen - tylko ze gdy nie ma pliku to wywala mi tekst z bledem - a tego nie chcem osiagnac... najlepiej jakby zwracalo true albo false
RaZor
Cytat
steru: niestety podany przez ciebie zapis nie dziala...
ja probowalem to na zasadzie fopen - tylko ze gdy nie ma pliku to wywala mi tekst z bledem - a tego nie chcem osiagnac... najlepiej jakby zwracalo true albo false


Kod
function jest_plik($url){

   $temp = error_reporting(E_ALL & ~(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE));

   $file = fopen ("$url", "r");

   error_reporting($temp);

   return(!$file)?0:1;

}
FiDO
Kod
function jest_plik($url){

   $file = @fopen ("$url", "r");

   return ($file)?1:0;

}

czyz nie prosciej?

http://pl.php.net/manual/en/language.opera...rrorcontrol.php
mieczyk
Dzięki, aczkolwiek nie potrafie zastosować waszych funckji (albo sa zle, albo no nie wiem...), ale zrobilem swoja:
if (@fopen($nazwplik, "r"))
echo "okej";
else echo "qpa";

... nie wiedziałem o tej małpce, ale skorzystałem z pomocy na php.net...
jeszcze raz dzięki !
RaZor
Cytat
Kod
function jest_plik($url){

   $file = @fopen ("$url", "r");

   return ($file)?1:0;

}

czyz nie prosciej?


Na pewno krócej smile.gif
zombie
Cytat
Dzięki, aczkolwiek nie potrafie zastosować waszych funckji (albo sa zle, albo no nie wiem...), ale zrobilem swoja!

tamte funkcje byly ok, ale to byly FUNKCJE: :wink:
Kod
if (jest_plik($url))echo"ok";

else echo("dupa");


Cytat
... nie wiedziałem o tej małpce, ale skorzystałem z pomocy na php.net... jeszcze raz dzięki !

znak '@' to pominiecie komunikatu o bledzie. Skrypt dzialal tak samo bez malpki, nie? :wink:
RaZor
Cytat
znak '@' to pominiecie komunikatu o bledzie. Skrypt dzialal tak samo bez malpki, nie? :wink:


Dokładnie tak jest. Gdy otwierasz plik a jego tam niema to musisz wyłączyć błędy (elseif worning) scrypt działał by taksamo bez tego, funkcja zwracała by ten sam wynik, jednak wytswietlała by trochę więcej.

PS: Odpowiadam bo postawiłeś pytanie ale chyba sam znałeś odpowiedź.
kurtz
Cytat
Kod
function jest_plik($url){

   $temp = error_reporting(E_ALL & ~(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE));

   $file = fopen ("$url", "r");

   error_reporting($temp);

   return(!$file)?0:1;

}

1. czytelniej MSZ jest return ( $file ? 1 : 0 );
2. jaki sens ma ustawianie error reporting _po_ fopenie?
mieczyk
Cytat
Cytat
Dzięki, aczkolwiek nie potrafie zastosować waszych funckji (albo sa zle, albo no nie wiem...), ale zrobilem swoja!

tamte funkcje byly ok, ale to byly FUNKCJE: :wink:
Kod
if (jest_plik($url))echo"ok";

else echo("dupa");


Cytat
... nie wiedziałem o tej małpce, ale skorzystałem z pomocy na php.net... jeszcze raz dzięki !

znak '@' to pominiecie komunikatu o bledzie. Skrypt dzialal tak samo bez malpki, nie? :wink:


jejq... male przejezyczenie mialo byc napisalem swoje... (dwie linijki)

a co do f-cji no to nie wiem... albo cosik nie tak pisalem albo no nie wiem... bo robilem dokladnie tak samo !
RaZor
Cytat
1. czytelniej MSZ jest return ( $file ? 1 : 0 );
2. jaki sens ma ustawianie error reporting _po_ fopenie?

1. Racja
2. Ustawia error_raporting na taki jaki był przed zmianą error_raporting. Jednak prościej jest użyć @.
kurtz
Cytat
2. Ustawia error_raporting na taki jaki był przed zmianą error_raporting. Jednak prościej jest użyć @.
tak ale nigdzie ie byl modyfikowany.. i nie lepiej ini_restore()? przynajmniej wiadomo o co chodzi ;)
RaZor
Cytat
Cytat
2. Ustawia error_raporting na taki jaki był przed zmianą error_raporting. Jednak prościej jest użyć @.
tak ale nigdzie ie byl modyfikowany.. i nie lepiej ini_restore()? przynajmniej wiadomo o co chodzi winksmiley.jpg


To po co ini_restore jak nie był modyfikowany :wink: questionmark.gif

Chyba się "troszeczkę" czepiasz.
RaZor
Cytat
Cytat
2. Ustawia error_raporting na taki jaki był przed zmianą error_raporting. Jednak prościej jest użyć @.
tak ale nigdzie ie byl modyfikowany.. i nie lepiej ini_restore()? przynajmniej wiadomo o co chodzi winksmiley.jpg


To po co ini_restore jak nie był modyfikowany :wink: questionmark.gif

Chyba się "troszeczkę" czepiasz.
kurtz
Cytat
Cytat
tak ale nigdzie ie byl modyfikowany.. i nie lepiej ini_restore()? przynajmniej wiadomo o co chodzi ;)


To po co ini_restore jak nie był modyfikowany :wink: ??
to po kiego wogole byl ustawiany?...
RaZor
Cytat
Cytat
Cytat
tak ale nigdzie ie byl modyfikowany.. i nie lepiej ini_restore()? przynajmniej wiadomo o co chodzi winksmiley.jpg


To po co ini_restore jak nie był modyfikowany :wink: questionmark.gif
to po kiego wogole byl ustawiany?...


Jak chcesz się przypierd...ć to uważniej czytaj kod a nie mów mi, że
Kod
$temp = error_reporting(E_ALL & ~(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE));

takie wywołanie funkcji nie ustawia odpowiedniego raportowania błędów.

Kod pisze jak chce a rozwiązanie problemu było tylko przykładowe, więc nie rozumiem takich ludzi którzy nie wnoszą nic do sprawy a tylko potrafią wytykać ludzią błędy. Najlepsze jest to, że nie masz racji i nie potrafisz się do tego przyznać.
kurtz
Cytat
nie mów mi, że
Kod
$temp = error_reporting(E_ALL & ~(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_COMPILE_WARNING | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE));

takie wywołanie funkcji nie ustawia odpowiedniego raportowania błędów.
ustawia. nie widzialem ze error_reporting zwraca poprzedni stan - do teraz zakladalem ze zwraca wartosc int dla stanu ustawianego.
Cytat
Kod pisze jak chce a rozwiązanie problemu było tylko przykładowe, więc nie rozumiem takich ludzi którzy nie wnoszą nic do sprawy a tylko potrafią wytykać ludzią błędy.
to sie nazywa dyskusja
Cytat
Najlepsze jest to, że nie masz racji i nie potrafisz się do tego przyznać.
byc moze dlatego ze na poczatek bylem sweicie przekoanny ze w/w funkcja zwraca cos innego.i wlasnie sie doweidzialem ze nie. ja nie czuje sie z tego powodu gorszy czy lepszy.
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.