preg_match
Hi, ich verstehe die folgende function nicht so ganz:
if (!preg_match('/^.{1,2}/', $file)) Die sorgt dafür, das die Verzeichnisse [..] oder zb .htaccess nicht angezeigt werden. Was muss ich da ein bauen, das z.B. *.php oder *.html nicht angezeigt werden??? Wäre dankbar für eure Hilfe! Ralf |
Ich bin nicht sonderlich geübt mit regulären Ausdrücken, also bitte hab Nachsicht mit mir. :)
Versuch's mal so: PHP-Code:
|
hm...
geht irgendwie nicht!
Wenn ich das so einbaue, werden sowohl die Punkte (./..) als auch die *.php Datein angezeigt... ich werde weiter rumprobieren... Ralf |
So geht's:
PHP-Code:
|
wahrscheinlich..
...bin ich zu doof!
Wenn ich das so übernehme, dann zeigt er nix mehr an... |
sowas geht auch ohne pregmatch. kannst autoindexing mit indexignore verwenden, oder du fragst einfach die letzten zeichen (substring) des dateinamens ab.
|
Zitat:
Lass doch einfach mal php und ein Trennzeichen weg, dann sollten entsprechende Dateien wieder angezeigt werden. |
Also hier ist noch jemand ohne Ahnung, aber vieleicht funktioniert das hier:
PHP-Code:
Das »$« am Ende heißt, daß $haystack mit der gesuchten Kette enden muß. ».« ist der escapte Punkt vor Deiner Dateiendung. »|« heißt »oder«. Die Konstruktion »(php|htm(l)?)« prüft, ob nach dem Punkt entweder ein »php« oder ein »htm« mit optional (dafür steht die »{0,1}« ersetzende Kurzform »?«) anschließendem »l« steht. Weitere Kurzformen wären »+« für »1 oder mehrere« und »*« für »0 oder mehrere«. Die beiden nachstehenden $needle prüfen in meinem Gästebuch die Plausibilität von e-mail- bzw. Web-Adressen (Das »^« am Anfang bedeutet, analog zum »$« am Ende, daß $haystack mit der gesuchten Kette beginnen muß). $needle = '/^[a-z0-9_.-]+@[a-z0-9_.-]+.[a-z]{2,4}$/'; $needle = '/^(http://)?[a-z0-9_.-]+.[a-z]{2,4}(/[a-z0-9_./#~?&=-]*)*$/'; |
für ordner?
für ordner allein (zum verstecken von [.] , [..]) müsste das so aussehen?
PHP-Code:
auf meinem WINdoof geht das zumindest |
Damit wird doch jeder Verzeichniseintrag, der einen oder zwei Punkte enthält ausgeblendet, nicht oder?
Müsste das nicht |^[^.]{1,2}| heißen? Damit wird doch eigentlich alles ausgeschlossen, was mit einem oder zwei Punkten anfängt. Die .htaccess also auch. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:17:46 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.