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