phpbar.de logo

Mailinglisten-Archive

[php] RegExp die zweite

[php] RegExp die zweite

Andreas Heigl a.heigl at wdv.de
Don Dez 2 16:18:39 CET 2004


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