Autor | Zpráva | ||
---|---|---|---|
Dranel Profil |
#1 · Zasláno: 29. 5. 2008, 19:14:44
Zdravím, které z následujících řešení je to správné? Nějak mi to nemyslí... resp. nevím, odkud to PHP rozebírá.
1) if (file_exists(is_file('stranky/'.$_GET['str'].'.php'))) 2) if (is_file(file_exists('stranky/'.$_GET['str'].'.php'))) |
||
Joker Profil |
#2 · Zasláno: 29. 5. 2008, 19:21:23
Dranel
Ani jedno, podle mě. Obě funkce mají jako vstup název souboru a vracejí bool. Výstup ani jedné z nich proto nemůže být vstupem té druhé. Správně by to bylo: if(file_exists($soubor) && is_file($soubor)) ale IMHO to je to samé jako: if(is_file($soubor)) |
||
Dranel Profil |
#3 · Zasláno: 29. 5. 2008, 20:37:06
Joker
Já to bral totiž logicky... první zjistit, jestli soubor existuje a pak, jestli je to soubor. No jo, jenže já předem nevím, že je to soubor. Tak jsem to obrátil. Vyšlo mi, že první zjistím, jestli je to soubor a pak, jestli existuje. No jo, ale já nevím, jestli vůbec existuje. A tak jsem nad tím přemýšlel, až jsem se do toho zamotal. Takže díky za vyřešení. Funkce is_file(&soubor) vyhrála :) |
||
Měsíček Profil |
#4 · Zasláno: 29. 5. 2008, 20:42:50
Nebral jsi to logicky .. když funkce kontroluje jestli "soubor" existuje tak dopředu musí vědět jestli je to soubor ;) takže vlastně file_exists má v sobě zahrnutý algoritmus funkce is_file a opačně, osobně se mi líbí více file_exists(); než is_file();
|
||
Dranel Profil |
#5 · Zasláno: 29. 5. 2008, 22:22:33
Měsíček
Na tvůj osobní názor já víš co... :D. Né vážně: mě se taky zamlouvá více... |
||
Měsíček Profil |
#6 · Zasláno: 29. 5. 2008, 22:29:16
Reaguji na Dranela:
"Na tvůj osobní názor já víš co... :D." [ ... víš co ... vždy dám :D] "Né vážně: mě se taky zamlouvá více..." Tobě se zamlouvají více tři tečky? :o) .. já mám k tomu důvod upřednostňovat v této situaci funkci file_exists(); .. docela by mě, ale zajímal jaký důvod máš pro to ty (pro is_file();). |
||
Joker Profil |
#7 · Zasláno: 29. 5. 2008, 22:41:41
Dranel
Jenže ono to takhle nefunguje Měsíček ...a ani takhle to úplně není. Když si (oba :-) ) přečtete manuál, tak file_exists zhruba kontroluje, zda na zadané cestě v souborovém systému "něco" je. Funkce is_file kontroluje, zda na zadané cestě v souborovém systému "něco" je a jestli to "něco" je platný soubor. Tzn. file_exists vrátí true pro existující soubory i adresáře, is_file jenom pro existující soubory (nejsem si jistý, jak to je s oprávněními). |
||
Dranel Profil |
#8 · Zasláno: 30. 5. 2008, 15:21:13
Měsíček
Sympatie Joker Aha, dík. Zase jsem o něco chytřejší. |
||
Časová prodleva: 16 let
|
0