Mailinglisten-Archive |
Am 02.12.2004 16:08 Uhr schrieb "Andreas Heigl" unter <a.heigl at wdv.de>: > Am 02.12.2004 16:02 Uhr schrieb "Henning Jödden" unter <henning at antsoft.de>: > >> Andreas Heigl schrieb: >>>> preg_match('|\.pdf$|i', $filename); >>>> >>>> liefert TRUE bei PDFs, FALSE bei allem anderen >>> >>> Ich brauche aber ein TRUE bei nicht-PDFs und ein FALSE bei PDFs ( liegt am >>> framework ). >> >> Kann ich mir nicht vorstellen, dass du die Bedingung nicht einfach >> umkehren kannst... >> Notfalls überspring die Bedingung bei FALSE und führe die Aktion einfach >> im ELSE Zweig aus. > Gut: dann hol ich etwas weiter aus: > > Ich muss aus einer Liste mit Dateinamen einige bestimmte Rausfiltern. Daher > gibt es ein Array mit regulären Ausdrücken, auf die jeder Dateiname gematcht > wird. Wenn ein Ausdruck passt, wird die Datei nicht angezeigt, wenn kein > Ausdruck passt, wird die Datei angezeigt. > > Nun soll benutzerabhängig gefiltert werden. Benutzer 1 kann alles sehen, > Benutzer 2 sieht z.B. das Verzeichnis '/etc/' nicht, aber alles andere und > ein Benutzer soll eben nur pdf-Dateien sehen können. > > Wenn ich also die Bedingung für pdf's umkehre, habe ich das selbe Problem in > grün bei anderen Dateien. > > Wenn es aber keine Möglichkeit gibt, ganze Zeichenketten zu negieren, muss > ich das komplette Framework umschreiben. > > Ist auch machbar, wär aber unschön ;-) > > Grüße > > Andreas So. Dann löse ich das Problem eben selbst. :-) Preg_match('/(?<!pdf)$/i',$string); Der Ausdruck findet ein Zeilenende nur dann, wenn _kein_ 'pdf' davorsteht. Und schon hab ich mir viel arbeit gespart :-) Gefunden hab ich den 'Trick' übrigens bei http://www.regenechsen.de/regex_de/regex_4_de.html Danke nochmal für alle Vorschläge Grüße Andreas -- wdv Medien & Kommunikation GmbH & Co. OHG Mediendatenverarbeitung Andreas Heigl Siemensstrasse 6 61352 Bad Homburg Germany Telefon +49-(0)6172-670-185 Telefax +49-(0)6172-670-181 www.wdv.de
php::bar PHP Wiki - Listenarchive