Login | ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/fastphp/trunk/fastphp_server.inc.php
Revision: 9
Committed: Sat Dec 3 13:44:41 2016 UTC (3 years, 3 months ago) by daniel-marschall
File size: 2975 byte(s)

File Contents

# Content
1 <?php
2
3 if (isset($argv[1])) {
4 $ary = explode('&', $argv[1]);
5 foreach ($ary as $chunk) {
6 if (trim($chunk) == '') continue;
7 $param = explode("=", $chunk);
8 // TODO: also accept parameters without value. as well as arrays...
9 $_GET[urldecode($param[0])] = urldecode($param[1]);
10 unset($param);
11 }
12 unset($chunk);
13 unset($ary);
14 }
15
16 if (isset($argv[2])) {
17 $ary = explode('&', $argv[2]);
18 foreach ($ary as $chunk) {
19 if (trim($chunk) == '') continue;
20 $param = explode("=", $chunk);
21 $_POST[urldecode($param[0])] = urldecode($param[1]);
22 unset($param);
23 }
24 unset($chunk);
25 unset($ary);
26 }
27
28 foreach ($_GET as $name => $val) $_REQUEST[$name] = $val;
29 foreach ($_POST as $name => $val) $_REQUEST[$name] = $val;
30 unset($name);
31 unset($val);
32
33 // TODO: headers... cookies... decoding of POST (see header)...
34 $_HEADER = array();
35 if (isset($argv[3])) {
36 $ary = $argv[3];
37 $ary = str_replace('|CR|', "\r", $ary);
38 $ary = str_replace('|LF|', "\n", $ary);
39 $ary = explode("\r\n", $ary);
40 foreach ($ary as $chunk) {
41 if ($chunk == '') continue;
42 $param = explode(":", $chunk);
43 $_HEADER[trim($param[0])] = trim($param[1]); // FastPHP specific
44 // TODO: also generate some usual
45
46 // TODO: get more of these: http://php.net/manual/de/reserved.variables.server.php
47 // TODO: case sensitive?
48 if (trim($param[0]) == 'User-Agent') $_SERVER['HTTP_USER_AGENT'] = trim($param[1]);
49 if (trim($param[0]) == 'Referer') $_SERVER['HTTP_REFERER'] = trim($param[1]);
50
51 unset($param);
52 }
53 unset($chunk);
54 unset($ary);
55 }
56
57
58
59 # ---
60
61 // https://gist.github.com/pokeb/10590
62 /*
63 function parse_cookies($header) {
64
65 $cookies = array();
66
67 $cookie = new cookie();
68
69 $parts = explode("=",$header);
70 for ($i=0; $i< count($parts); $i++) {
71 $part = $parts[$i];
72 if ($i==0) {
73 $key = $part;
74 continue;
75 } elseif ($i== count($parts)-1) {
76 $cookie->set_value($key,$part);
77 $cookies[] = $cookie;
78 continue;
79 }
80 $comps = explode(" ",$part);
81 $new_key = $comps[count($comps)-1];
82 $value = substr($part,0,strlen($part)-strlen($new_key)-1);
83 $terminator = substr($value,-1);
84 $value = substr($value,0,strlen($value)-1);
85 $cookie->set_value($key,$value);
86 if ($terminator == ",") {
87 $cookies[] = $cookie;
88 $cookie = new cookie();
89 }
90
91 $key = $new_key;
92 }
93 return $cookies;
94 }
95
96 class cookie {
97 public $name = "";
98 public $value = "";
99 public $expires = "";
100 public $domain = "";
101 public $path = "";
102 public $secure = false;
103
104 public function set_value($key,$value) {
105 switch (strtolower($key)) {
106 case "expires":
107 $this->expires = $value;
108 return;
109 case "domain":
110 $this->domain = $value;
111 return;
112 case "path":
113 $this->path = $value;
114 return;
115 case "secure":
116 $this->secure = ($value == true);
117 return;
118 }
119 if ($this->name == "" && $this->value == "") {
120 $this->name = $key;
121 $this->value = $value;
122 }
123 }
124 }
125 */