Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
preg_match - Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
preg_match - Problem


 
Pierre
21-05-2006, 21:38 
 
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,

 
faux
21-05-2006, 21:43 
 
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?

 
faux
21-05-2006, 21:48 
 
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

 
Pierre
21-05-2006, 21:54 
 
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 ;)

 
MarkusW
21-05-2006, 22:02 
 
und was wenn im ordnernamen ein . ist? nim lieber is_file()

 
Pierre
21-05-2006, 22:07 
 
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. :)

 
MarkusW
21-05-2006, 22:40 
 
??? 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?

 
Pierre
22-05-2006, 16:23 
 
Stimmt, is_file() scheint dann doch etwas geeigneter zu sein. *g*

Danke euch. :)

 
Pierre
22-05-2006, 17:03 
 
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? :(

 
wahsaga
22-05-2006, 17:12 
 
Original geschrieben von Pierre
Warum das nun schonwieder? :(
Weil du nur den Dateinamen angegeben hast, aber nicht den Pfad ...?

 
Pierre
22-05-2006, 17:22 
 
Stimmt, manchmal ist es echt verflixt. :-(

Vielen Dank. ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:55 Uhr.