欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP Web Server

程序员文章站 2022-04-29 18:25:01
...

注意需安装PHPpthreads扩展方可运行 PHP-CLI/1.0 PHP“phpWebServer.php”8080 PHP ?phpclass pthread extends thread {private $socket;public function __construct($socket) {$this-socket = $socket;}public function run() {date_default_timezone_set('

注意需安装 PHP pthreads 扩展 方可运行

PHP-CLI/1.0

PHP “phpWebServer.php” 8080 PHP
socket = $socket;
		
	}
	
	public function run() {
		
		date_default_timezone_set('UTC');
		
		$timeout = 5;
		$connfd = socket_accept($this->socket);
		if(!$connfd) {
			echo socket_strerror();
			exit;
		}
		socket_set_option($connfd, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
		
		$buffer = '';
		while (( $buffer .= socket_read($connfd, 1024, PHP_BINARY_READ) ) != NULL)
		if(strpos($buffer, "\r\n\r\n") !== false) break;
		
		$headers = array();
		$headers[] = 'HTTP/1.1 200 OK';
		$headers[] = 'Date: '. date('D, d M Y H:i:s'). ' GMT';
		$headers[] = 'Server: PHP-CLI/1.0';
		$headers[] = 'Content-Type: text/html; charset=utf-8';
		$headers[] = 'Connection: close';
		
		$response = array(
		'header'=> implode("\r\n", $headers) . "\r\n",
		'html'=> '
I\'m a PHP-CLI/1.0
'); socket_write($connfd, implode("\r\n", $response)); socket_close($connfd); socket_close($this->socket); } } error_reporting(0); set_time_limit(0); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($socket, '0.0.0.0', $argv[1]); socket_listen($socket); $i = 0; while(1) { $pthread[$i] = new pthread($socket); $pthread[$i]->start(); $pthread[$i]->join(); }