To use it.
[mistral.git] / examples / fill_server_variables.php
blobc3be5cf2f12c7a558b05926a380c961497ae1e05
1 <?php
2 // Get first line from client
3 do {
4 $input = fgets($conn);
5 } while( !feof($conn) && $input == "" );
7 if ( $input !== false ) {
8 $inputParsed = preg_split('/[\s]+/', $input );
11 $HTTP_HEADERS = array();
12 //while( !feof($conn) && ($keepAlive == false || $keepAlive > time()-$keepAliveTimeout) && ($input = fgets($conn) ) != "\r\n" ) {
13 while( !feof($conn) && ($input = fgets($conn) ) != "\r\n" ) {
14 if( preg_match('/([^:]+): (.*)/', $input, $matches) ) {
15 $HTTP_HEADERS[ strtolower($matches[1]) ] = trim($matches[2]);
19 if( count($HTTP_HEADERS) ) {
20 $_SERVER['REQUEST_METHOD'] = strtoupper( $inputParsed[0] );
21 $_SERVER['REQUEST_URI'] = $inputParsed[1];
22 $_SERVER['SERVER_PROTOCOL'] = strtoupper( $inputParsed[2] );
24 $remoteIp = explode( ':', stream_socket_get_name( $conn, true ) );
25 $_SERVER['REMOTE_ADDR'] = $remoteIp[0];
26 $_SERVER['REMOTE_PORT'] = $remoteIp[1];
28 $_SERVER['HTTP_HOST'] = $HTTP_HEADERS['host'];
29 $_SERVER['HTTP_USER_AGENT'] = $HTTP_HEADERS['user-agent'];
30 $_SERVER['HTTP_ACCEPT'] = $HTTP_HEADERS['accept'];
31 $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $HTTP_HEADERS['accept-language'];
32 $_SERVER['HTTP_ACCEPT_ENCODING'] = $HTTP_HEADERS['accept-encoding'];
33 $_SERVER['HTTP_ACCEPT_CHARSET'] = $HTTP_HEADERS['accept-charset'];
34 $_SERVER['HTTP_KEEP_ALIVE'] = $HTTP_HEADERS['keep-alive'];
35 $_SERVER['HTTP_CONNECTION'] = $HTTP_HEADERS['connection'];
36 $_SERVER['HTTP_COOKIE'] = $HTTP_HEADERS['cookie'];
38 $_SERVER['SERVER_SOFTWARE'] = '/^_^\istral Enterprise PHP v1.00';
40 $parsed_uri = parse_url($_SERVER['REQUEST_URI']);
41 parse_str($parsed_uri['query'], $_GET);
43 $_SERVER['argv'] = array(0 => $parsed_uri['query']);
44 $_SERVER['argc'] = count($_SERVER['argv']);
45 $_SERVER['GATEWAY_INTERFACE'] = 'CGI/1.1';
46 $_SERVER['SCRIPT_NAME'] = $parsed_uri['path'];
47 $_SERVER['PHP_SELF'] = $_SERVER['SCRIPT_NAME'];
48 $_SERVER['QUERY_STRING'] = $parsed_uri['query'];
50 //print_r($_SERVER);
51 //print_r($_GET);
52 //print_r($parsed_uri);
54 // Determine supported compression method
55 $gzip = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip');
56 $deflate = strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate');
57 $encoding = $gzip ? 'gzip' : ($deflate ? 'deflate' : 'none');
59 // Check for buggy versions of Internet Explorer
60 if (!strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') &&
61 preg_match('/^Mozilla\/4\.0 \(compatible; MSIE ([0-9]\.[0-9])/i', $_SERVER['HTTP_USER_AGENT'], $matches)) {
62 $version = floatval($matches[1]);
64 if ($version < 6)
65 $encoding = 'none';
67 if ($version == 6 && !strstr($_SERVER['HTTP_USER_AGENT'], 'EV1'))
68 $encoding = 'none';