annotate flag.php @ 16:a64e8f968e7e

Fast abort if cachehit.
author Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
date Wed, 19 Sep 2012 14:31:02 +0200
parents 6d420f2a1d91
children 1ac66bef193a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
1 <?php
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
2 include 'cache_check.inc';
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
3 include 'accept-language.inc';
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
4
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
5 function loadFile($sFilename, $sCharset = 'UTF-8')
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
6 {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
7 if (floatval(phpversion()) >= 4.3) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
8 if (!file_exists($sFilename)) return -3;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
9 $sData = file_get_contents($sFilename);
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
10 } else {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
11 if (!file_exists($sFilename)) return -3;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
12 $rHandle = fopen($sFilename, 'r');
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
13 if (!$rHandle) return -2;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
14
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
15 $sData = '';
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
16 while(!feof($rHandle))
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
17 $sData .= fread($rHandle, filesize($sFilename));
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
18 fclose($rHandle);
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
19 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
20 if ($sEncoding = mb_detect_encoding($sData, 'auto', true) != $sCharset) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
21 if ($sEncoding != 1) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
22 $sData = mb_convert_encoding($sData, $sCharset, $sEncoding);
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
23 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
24 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
25 return $sData;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
26 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
27
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
28
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
29 $active = $_GET['active'];
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
30 $lang = $_GET['lang'];
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
31
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
32 if(!$name) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
33 $name="home";
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
34 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
35 if(!$lang) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
36 $lang="no";
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
37 $langs=acceptedLanguages();
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
38 foreach ($langs as $l => $val) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
39 if (file_exists($l)) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
40 $lang=$l;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
41 break;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
42 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
43 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
44 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
45
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
46 $name="../img/flag-${lang}";
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
47 if ($active)
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
48 $name.="-active";
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
49 $name.=".png";
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
50
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
51 $flag=loadFile("${name}");
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
52
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
53 if (floatval($flag)<0) {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
54 header('HTTP/1.0 404 Not Found');
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
55 print '<div id="page"><h1>Resource not found</h1></div>';
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
56 }
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
57 else {
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
58 header("Content-Type: image/png");
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
59 print $flag;
6d420f2a1d91 Add flag generator.
Tom Fredrik "BFG" Klaussen <bfg@blenning.no>
parents:
diff changeset
60 }