Autor Zpráva
Strakkkoun
Profil *
Dobrý den,
narazil jsem na jednu malou, celkem důležitou, chybu, kterou bych rád nějak opravil, ale nevím jak... Mám na serveru soubor php, který mi vypisuje obsah určitého adresáře. Problém je v tom, že kromě .. a . nic jiného jako složky nebere. Složku vezme jako soubor...

Poradí někdo?
Alphard
Profil
Poradí někdo?
bez kódu nijak konkrétně, kontroluj to funkcí is_dir()
Strakkkoun
Profil *
Kód je správně.. na virtuálním serveru funguje a na realnem serveru je nefunkční...

pomocí is_dir() jsem to kontroloval.. složky bere jako soubory, ale to už jsem napsal nazačátku :P... zkoušel jsem is_dir(), ale i filetype a ten mi vracel hodnotu DIR jen u .. a .
TFSi
Profil
A jak to kontroluješ? Do fce is_dir() se musí cpát celá cesta a ne jen název souboru nebo adresáře.
Tedy například is_dir("/wwwroot/server/dir/"); a ne is_dir("dir/");
Strakkkoun
Profil *
Cestu tam dávám celou... v pohodě.. spíš by mne zajímalo, proč to jde na virtuálu a na realu ne :D
DJ Miky
Profil
TFSi
Nemusí, stačí „./“ na začátku.

Pokud zkoušíš složky s lomítkem na konci, zkusil bych to bez nich.
Strakkkoun
Profil *
Chlapi!
Problém je následovný a netuším vážně čím to je. Některé složky, co tam byly vytvořené dříve se jako složky zobrazují i její podsložky. Ale když jsem vytvořil novou složku a dal do ní složku, tak už to nebere..
DJ Miky
Profil
Máš třeba práva k ní přistupovat?
Strakkkoun
Profil *
Jak se nastavují práva? Vyzkouším to..
Alphard
Profil
chmod()
nebo při vytváření pomocí mkdir 2. parametr
Strakkkoun
Profil *
Zkoušel jsem i práva a nic..
snake_aas
Profil
Bez zdrojáku a serveru, na kterém to nejede je těžko odpovídat...
Vsek
Profil
Mám stejné problém jako Strakkkoun , ale funguje(nefunguje) to následovně :

Když je script , který zjištuje typ souboru ve stejném adresáři , tak to funguje na 1.Ale když je v jinem adresáři tak to nejede ... pouzivam nasledujici kod :

$handle=opendir('.');
while ($soub = readdir($handle)) {
echo($file.'__'.filetype($file).'<br />');
}

Primitivnější to být snad už nemůže ....

takhle to funguje , ale když dám jako adresář něco jiného ('./pokus') , tak filetype obsahuje prázný řetězec a is_dir vrací 0 ... adresáře tam samozřejmně sou :-D

nevíte někdo proč ??
Vsek
Profil
Tak už sem na to došel ....
jako argument do filetype se zadává cesta od adresáře ze které je funkce spuštěna ... proto to s adresářem '.' funguje a s jiným nee.
Tenhle kod je funkční :


$dir='pokus/';
$handle=opendir($dir);
while ($file = readdir($handle)) {
echo($file.'__'.filetype($dir.$file).'<br />');
}
Toto téma je uzamčeno. Odpověď nelze zaslat.