com web/php: Prefer SVG logo over PNG; serve .gz if possible: images/logo.php
| From: | Levi Morrison | Date: | Mon, 21 Sep 2015 16:05:13 +0000 |
| Subject: | com web/php: Prefer SVG logo over PNG; serve .gz if possible: images/logo.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-24164@lists.php.net to get a copy of this message | ||
Commit: 34700d925d52e09550e87c317d98f1ae6f9ffe42
Author: Levi Morrison <levim@php.net> Mon, 21 Sep 2015 10:05:13 -0600
Parents: 77e279fcfe39e7a612a1e81131c0d5fe66ae21e9
Branches: master
Link: http://git.php.net/?p=web/php.git;a=commitdiff;h=34700d925d52e09550e87c317d98f1ae6f9ffe42
Log:
Prefer SVG logo over PNG; serve .gz if possible
Changed paths:
M images/logo.php
Diff:
diff --git a/images/logo.php b/images/logo.php
index 02a61fe..89c99d9 100644
--- a/images/logo.php
+++ b/images/logo.php
@@ -5,20 +5,52 @@ $refresh = isset($_GET["refresh"]) ? true : false;
function imgheader($filename) {
$ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
switch($ext) {
- case "gif":
- $hdr = "image/gif";
+ case 'gif':
+ $hdr = 'image/gif';
break;
- case "png":
- $hdr = "image/png";
+ case 'png':
+ $hdr = 'image/png';
break;
- case "jpg":
- case "jpeg":
- $hdr = "image/jpeg";
+ case 'jpg':
+ case 'jpeg':
+ $hdr = 'image/jpeg';
+ break;
+ case 'svg':
+ $hdr = 'image/svg+xml';
break;
default:
return false;
}
- header("Content-Type: " . $hdr);
+ header("Content-Type: $hdr");
+}
+
+
+function get_accepted_encodings() {
+ if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) {
+ $encodings = explode(',', $_SERVER['HTTP_ACCEPT_ENCODING']);
+ return array_map(function ($x) {
+ return trim($x);
+ }, $encodings);
+ }
+ return array();
+}
+
+
+function serve_compressed_if_available($logo) {
+ $encodings = get_accepted_encodings();
+ if (!empty($encodings)) {
+ foreach ($encodings as $encoding) {
+ if ($encoding === 'gzip') {
+ $encoded_file = "$logo.gz";
+ if (file_exists($encoded_file)) {
+ header("Content-Encoding: $encoding");
+ readfile($encoded_file);
+ return;
+ }
+ }
+ }
+ }
+ readfile($logo);
}
// Be 100% sure the timezone is set
@@ -39,7 +71,7 @@ switch($_SERVER["QUERY_STRING"]) {
break;
default:
$logos = array(
- "./logos/php-logo@2x.png",
+ "./logos/php-logo.svg",
);
}
@@ -77,6 +109,6 @@ $tsstring = gmdate("D, d M Y H:i:s ", $now) . "GMT";
header("Last-Modified: " . $tsstring);
header("Expires: " . date(DATE_RSS, $future));
imgheader($logo);
-readfile($logo);
+serve_compressed_if_available($logo);