]> granicus.if.org Git - php/commitdiff
Implemented FR #61977 (Need CLI web-server support for files with .htm & svg extensions)
authorXinchen Hui <laruence@php.net>
Wed, 9 May 2012 03:27:39 +0000 (11:27 +0800)
committerXinchen Hui <laruence@php.net>
Wed, 9 May 2012 03:27:39 +0000 (11:27 +0800)
NEWS
sapi/cli/php_cli_server.c
sapi/cli/tests/bug61977.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index d989f34db7a6b11cb45c4bd2c31e04a40718ea44..cb00f7a2734a94483bb621c5ca735939ffc41358 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ PHP                                                                        NEWS
 ?? ??? 2012, PHP 5.4.2
 
 - CLI Server:
+  . Implemented FR #61977 (Need CLI web-server support for files with .htm & 
+    svg extensions). (Sixd, Laruence)
   . Fixed bug #61546 (functions related to current script failed when chdir() 
     in cli sapi). (Laruence, reeze.xia@gmail.com)
   . Improved performance while sending error page, this also fixed
index e052aa8dd6b4c3fde4843dbb81239133e9cd5b91..87ab7b48f4975980edc50e5f77298893396b512f 100644 (file)
@@ -251,15 +251,17 @@ static php_cli_server_http_reponse_status_code_pair template_map[] = {
 };
 
 static php_cli_server_ext_mime_type_pair mime_type_map[] = {
+       { "html", "text/html" },
+       { "htm", "text/html" },
+       { "js", "text/javascript" },
+       { "css", "text/css" },
        { "gif", "image/gif" },
-       { "png", "image/png" },
-       { "jpe", "image/jpeg" },
        { "jpg", "image/jpeg" },
        { "jpeg", "image/jpeg" },
-       { "css", "text/css" },
-       { "html", "text/html" },
+       { "png", "image/png" },
+       { "jpe", "image/jpeg" },
+       { "svg", "image/svg+xml" },
        { "txt", "text/plain" },
-       { "js", "text/javascript" },
        { NULL, NULL }
 };
 
diff --git a/sapi/cli/tests/bug61977.phpt b/sapi/cli/tests/bug61977.phpt
new file mode 100644 (file)
index 0000000..edb7b78
--- /dev/null
@@ -0,0 +1,157 @@
+--TEST--
+Bug #60159 (Router returns false, but POST is not passed to requested resource)
+--SKIPIF--
+<?php
+include "skipif.inc"; 
+?>
+--FILE--
+<?php
+include "php_cli_server.inc";
+php_cli_server_start('<?php ?>', true);
+$doc_root = __DIR__;
+
+list($host, $port) = explode(':', PHP_CLI_SERVER_ADDRESS);
+$port = intval($port)?:80;
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+
+file_put_contents($doc_root . '/foo.html', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.html HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.html => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.html');
+fclose($fp);
+
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+file_put_contents($doc_root . '/foo.htm', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.htm HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.htm => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.htm');
+fclose($fp);
+
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+file_put_contents($doc_root . '/foo.svg', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.svg HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.svg => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.svg');
+fclose($fp);
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+file_put_contents($doc_root . '/foo.css', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.css HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.css => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.css');
+fclose($fp);
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+file_put_contents($doc_root . '/foo.js', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.js HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.js => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.js');
+fclose($fp);
+
+$fp = fsockopen($host, $port, $errno, $errstr, 0.5);
+if (!$fp) {
+  die("connect failed");
+}
+file_put_contents($doc_root . '/foo.png', '');
+if(fwrite($fp, <<<HEADER
+GET /foo.png HTTP/1.1
+Host: {$host}
+
+
+HEADER
+)) {
+       while (!feof($fp)) {
+               $text = fgets($fp);
+        if (strncasecmp("Content-type:", $text, 13) == 0) {
+           echo "foo.png => ", $text;
+        }
+       }
+}
+@unlink($doc_root . '/foo.png');
+fclose($fp);
+?>
+--EXPECTF--
+foo.html => Content-Type: text/html; charset=UTF-8
+foo.htm => Content-Type: text/html; charset=UTF-8
+foo.svg => Content-Type: image/svg+xml
+foo.css => Content-Type: text/css; charset=UTF-8
+foo.js => Content-Type: text/javascript; charset=UTF-8
+foo.png => Content-Type: image/png