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