Moin,
nochmal folgendes Problem:
Ich habe eine Schleife, in der die Variable $file jeweils einen Datei- oder Ordnernamen zugewiesen bekommt und diesen dann ausgibt. Jetzt möchte ich prüfen ob es sich um eine Datei handelt (ich will prüfen ob ein . (Punkt) im Dateinamen vorkommt) und dann den Dateinamen mit einem entsprechenden Icon ausgeben. Hier mal der Code:
$regex = '/./';
if (preg_match($regex, $file))
echo '<img src="file.png"><a href="../' . $file . '">' . $file . '</a><br/>'; Das geht aber irgendwie nicht richtig, auch die Ordner werden mit dem Dateiicon dargestellt. Weiß jemand woran es liegt ?
P.S.: Mit dem regulären Ausdruck bei $regex = 'xxx' bin ich mir nicht sicher, ich denke mal der Fehler liegt da. Aber was muss da rein ?
Vielen Dank schonmal,
Hallo Pierre!
Du könntest das ganze auch ohne Reguläre Ausdrücke lösen. Siehe dir dazu mal die Funktion strrchr (http://at.php.net/manual/en/function.strrchr.php) an.
Grüße
Faux
mrhappiness
21-05-2006, 21:45
Der Punkt hat in einem regulären Ausdruck eine besondere Bedeutung, wenn du tatsächlich nach einem Punkt suchen willst, musst du ihn maskieren: \.
Warum verwendest du nicht is_file?
Original geschrieben von mrhappiness
Warum verwendest du nicht is_file?
Original geschrieben von Pierre
... und dann den Dateinamen mit einem entsprechenden Icon ausgeben.
Grüße
Faux
Danke faux,
per if (strrchr($file, '.'))
{ echo '<img src="file.png"><a href="../' . $file . '">' . $file . '</a><br/>';
}
else echo '<img src="folder.png"><a href="../' . $file . '">' . $file . '</a><br/>';
geht es wunderbar. :-)
@mrhappiness: Ja, ich sollte mir die regulären Ausdrücke wohl nochmal genauer angucken. Danke dir ;)
und was wenn im ordnernamen ein . ist? nim lieber is_file()
Hi,
dass Script soll ja nur auf meinem Webserver laufen und da gibt es keine Ordner mit . im Ordnernamen, also kann ich mir die Arbeit sparen. Trotzdem danke. :)
??? arbeit?
if (is_file('../'.$file))
{ echo '<img src="file.png"><a href="../' . $file . '">' . $file . '</a><br/>';
}
else echo '<img src="folder.png"><a href="../' . $file . '">' . $file . '</a><br/>';
mrhappiness
22-05-2006, 07:45
Original geschrieben von faux
Original geschrieben von mrhappiness
Warum verwendest du nicht is_file?
Original geschrieben von Pierre
... und dann den Dateinamen mit einem entsprechenden Icon ausgeben.
Grüße
FauxDas muss ich nicht verstehen, oder?
Stimmt, is_file() scheint dann doch etwas geeigneter zu sein. *g*
Danke euch. :)
Noch ein neues Problem:
Ich möchte hinter jedem Dateinamen auch die Dateigröße angeben. Also hab ich einfach ein $groesse = filesize($file); eingebaut und in der Bedingung echo '<a href="../' . $file . '"><img src="file.png" border="0">' . $file . '</a><i> ('.$groesse.')</i><br/>'; }
Komischerweise wird mir nur von der index.php die Dateigröße angezeigt, bei allen anderen erhalte ich folgende Meldung:
Warning: filesize() [function.filesize]: stat failed for log in S:\tux\xampp\htdocs\page\log\index.php on line 142
Warum das nun schonwieder? :(
Original geschrieben von Pierre
Warum das nun schonwieder? :(
Weil du nur den Dateinamen angegeben hast, aber nicht den Pfad ...?
Stimmt, manchmal ist es echt verflixt. :-(
Vielen Dank. ;)