php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.02.2006, 10:41  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard ACCEPT-ENCODING: gzip, regex ermittlung

Hallo zusammen, mal wieder ein Regex-Problem. Ich möchte die Übermittlung des ACCEPT-ENCODING genau überprüfen.
Dazu benötige ich einen regex.
Erkannt werden sollen:
gzip, x-gzip wenn nicht 0 oder 0.0 dahinter steht. 0.5 oder 0.1 sollen allerdings erkannt werden. 1.0 geht auch. Aber das muss direkt dahinter stehen, nicht irgendwo anders.

Mein Ansatz:
PHP-Code:
$string ", x-gzip;q=0.1";
var_dump(preg_match("/^(.*,[\s]*)?(x\-)?gzip(?!;q=0[^.]|;q=0.0).*$/iU",$string)); 
Der Regex funktioniert auch gut, einzig und allein folgendes wird nicht erkannt:
$string = "gzip;q=0";

Kann mir da einer weiterhelfen?
Andreas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.02.2006, 10:49  
Gast
 
Beiträge: n/a
Standard

Zitat:
q=0.0
Dann musste nach Zahlen mit Punkt suchen ...
  Mit Zitat antworten
Alt 04.02.2006, 10:54  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hey der cix88 naja, es sollen ja nur 0 und 0.0 in der negativen lookahead assertion aktiv sein. dummerweise ist durch 0[^. ] vorgeschrieben, dass nach der 0 nicht ende sein darf. wenn ich den punkt aber optional mache, funktioniert es nicht. denn dann erkennt er auch 0.1 nicht mehr an.
Andreas ist offline   Mit Zitat antworten
Alt 04.02.2006, 11:23  
Gast
 
Beiträge: n/a
Standard

Hmmm, hab eben noch Probleme dir zu folgen was erkannt werden soll und was nicht
  Mit Zitat antworten
Alt 04.02.2006, 11:53  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, beispiele:
Angaben ohne Qualität sind generell unterstützt (gzip, x-gzip,etc.).
Angaben mit Qualität sind nur dann unterstützt, wenn die Qualität nicht 0 oder 0.0 ist.

Das heißt:
gzip, soll true zurückgeben
x-gzip, soll true zurückgeben
gzip;q=1, soll true zurückgeben
gzip;q=1.0, soll true zurückgeben
gzip;q=0, soll false zurückgeben
gzip;q=0.0, soll false zurückgeben
x-gzip;q=0.0, soll false zurückgeben
x-gzip;q=0, soll false zurückgeben
gzip;q=1asdf (also alles nicht whitespace oder komma) soll false zurückgeben

bin schon weitergekommen:

PHP-Code:
<?php
var_dump
(preg_match("/^(.*,[\s]*)?(x\-)?gzip(?!;q=0(?!\.[1-9])).*$/iU",$string));
?>
Der hier macht alles bis auf gzip;q=1.0asdf == false, also das letzte beispiel
Andreas ist offline   Mit Zitat antworten
Alt 04.02.2006, 11:57  
Gast
 
Beiträge: n/a
Standard

Zitat:
Erkannt werden sollen:
gzip, x-gzip wenn nicht 0 oder 0.0 dahinter steht. 0.5 oder 0.1 sollen allerdings erkannt werden
Ich hoffe, dass ich jetzt verstanden habe (war ne kurze nacht):

EDIT:

PHP-Code:
<?php
$pattern 
'/^(.*,[\s]*)?(x\-)?gzip;q=([0]\.[1-9]|[1](\.[0-9])?)(.*)$/i';
?>
- q=0 wird nicht erkannt
- q=0.0 wird nicht erkannt
- q=0.1 wird erkannt
- q=1.0 wird erkannt

Meinste das ?
  Mit Zitat antworten
Alt 04.02.2006, 16:00  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja das schon, aber gzip;q=1.0asdf soll nicht erkannt werden. nach dem 1.0 oder auch 0.5 soll nur ein Komma, Whitespaces oder nichts stehen dürfen.
Andreas ist offline   Mit Zitat antworten
Alt 04.02.2006, 16:52  
Gast
 
Beiträge: n/a
Standard

Jo dann musste hinten das (.*) rausnehmen, und dafür mal (|,|\s) einsetzen ...
Mal ausprobieren.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex für attribute in quelltexten robo47 PHP Tipps 2005 6 27.01.2005 18:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
accept-encoding, php accept-encoding, accept encoding, accept encoding gzip, php accept encoding, accept-encoding php, accept-encoding: gzip, deflate, accept-encoding:, accept-encoding: gzip, php encoding ermitteln, encoding gzip, html accept-encoding, php gzip, html accept encoding, accept-encoding gzip, accept_encoding, accept encoding gzip php, gzip q=0, accept-encoding html, accept encoding php

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.