Szembe jött egy ilyen probléma, egyelőre nem értem:
$iterator = new DirectoryIterator('/bin');
foreach ($iterator as $file) {
echo "XXX".$file->getFilename()."\n";
}
Ez a kód 5.2.17-es PHP-n lefut, 5.5.16 és .18-ason be sem lép a ciklusba. FreeBSD, bár nem tudom ez mennyiben számít.
Találkozott ilyennel már valaki?
- 2752 megtekintés
Hozzászólások
var_dump mit mond a $iterator -ra?
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
object(DirectoryIterator)#2 (4) {
["pathName":"SplFileInfo":private]=>
string(6) "/bin/."
["fileName":"SplFileInfo":private]=>
string(1) "."
["glob":"DirectoryIterator":private]=>
bool(false)
["subPathName":"RecursiveDirectoryIterator":private]=>
string(0) ""
}
- A hozzászóláshoz be kell jelentkezni
Az 5.2 es az 5.5.* PHP ugyanazon a gepen fut? Ha nem, az 5.5-oson van jogod listazni a /bin -t?
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
Nem ugyanazon. Az egyik FreeBSD 10 host, FreeBSD 8 jailben (5.2), a másiknál szinkronban van minden, 10-es.
Jogom van listázni, a fenti scriptet egyébként rootként futtatom PHP CLI-ből.
Syscall szinten néztem még meg, az 5.2-es
csinál egy statot a /bin-en
megnyitja open-nel
nyom rajta egy fstatot,
fstatfs-t
getdirentriest
ezután minden fájlnévre egy write-ot az stdoutra
a végén close()
Az 5.5-ös ezzel szemben:
open
fstatfs
getdirentries
close
Vsz. a PHP kódban kellene folytatni, de jelenleg nincs türelmem hozzá.
- A hozzászóláshoz be kell jelentkezni