ftp: zwischen ordnern und dateien unterscheiden?
benni
- php
hi!
ich programmiere mir gerade einen browser-ftp-clienten. (bzw. hab heute mittag angefangen ;) ).
jetzt kann ich mir ja alle dateien und ordner ausgeben lassen:
$arr = ftp_nlist($ftp_stream,$verzeichnis);
foreach ($arr as $v)
print " - $v<br>";
aber wie unterscheide ich da jetzt zwischen dateien und ordnern? das is n unix-ftp-server, da brauchen die dateien also nicht unbedingt endungen ;)
viele grüße,
benni
zum beispiel mit
filetype ()
der schmeißt dir 'dir' aus, wenn's n verzeichnis ist...
check mal www.php.net. da steht mehr über den befehl!
das liefert "unkown filetype (0)" zurück...
liegt warscheinlich daran, dass ich damit ja ftp-files überprüfen will...
viele grüße,
benni graf
dann probier's doch mal mir dem is_dir(9 befehl:
hile ($filename = readdir( $filehandle ))
if ($filename != ".." && $filename != "." )
{
$farray[] = $filename ;
if ( is_dir($filename) ) { echo "is $filename dir? yes<br>";} else {echo "is $filename dir? no<br>";}
$fcount++;
}
da war ich zu hastig.
die 9 in der ersten zeile soll ein ) sein und statt 'hile' muss es natürlich 'while' heißen.
alter schwede, jetzt nochmal komplett, damit man's auch versteht!
$dirname = "verzeichnisname";
$filehandle = opendir( $dirname ); //open directory
while ($filename = readdir( $filehandle ))
{
if ($filename != ".." && $filename != "." )
{
if ( is_dir($filename) ) { echo "is $filename dir? yes<br>";} else {echo "is $filename dir? no<br>";}
}
}
hier liefert er jedesmal no zurück, auch wenns n verzeichnis ist...
hier mal meinen text um alles auszugeben:
<?php
echo "<h2>Bennis ftp-manager</h2><br>";
$ftp_stream = ftp_connect("server");
$ftplogin = ftp_login($ftp_stream,"benni","[ZENSORED]");
echo "<br>Filelist:<br>";
$arr = ftp_nlist($ftp_stream,"/");
for ($i=1;$arr[$i]!="";$i++) {
echo " - $arr[$i] <br>\n";
}
ftp_quit($ftp_stream);
?>
Hallo benni,
aber wie unterscheide ich da jetzt zwischen dateien und ordnern?
vielleicht mit is_dir() -> http://www.php.net/manual/de/function.is-dir.php?
Grüße aus Nürnberg
Tobias
hi!
wenn ich is_dir($arr[$i]) aus gebe (wobei $arr ein array mit allen dateinamen ist), kommt gar nix raus ( "" ohne die anführungszeichen).
viele grüße,
benni
hi!
also ich mach das jetzt, in dem ich die größe der entsprechenden datei herausfinde. bei ordnern ist die -1...
net ganz so elegant, aber es funktioniert...
besten dank trotzdem,
Benni