⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.php

📁 a short sketch about linux syntex lines.
💻 PHP
字号:
<?php/*Socket数据交互类*/class Easy_Socket{	private $_fp;	public $timeout; 	public function __construct(){			}	/*	链接目标服务器 	@param string $target 目标地址	@param int $port 端口号	@param int $timeout 超时时间	*/	public function Connect($target, $port=80, $timeout=10){		$this->timeout = intval($timeout);		$this->target = $target;		$this->port = (int)$port;		//echo $target;		$this->_fp = @fsockopen($this->target, $this->port, $errno, $error, $this->timeout);		if (!$this->_fp){			$this->errno = $errno;			$this->error = $error;			return  false;		}else{			stream_set_blocking($this->_fp, 1);			unset($target, $port, $timeout);			return true;		}	}	/*	从服务器端获取数据	@param array $Query 提交的GET数据	return bool;	*/	public function setQuery($Query = array()){		if (is_resource($this->_fp)){			if (isset($Query['host']) === false ){				$Query['host'] = 'google.com';			}			if (isset($Query['referer']) === false ){				$Query['referer'] = 'www.baidu.com';			}			if (isset($Query['path'])){				$Query['path'] = '/'.$Query['path'];			}else{				$Query['path'] = '/';			}			//echo $Query['path'];			$send = "GET {$Query['path']} HTTP/1.1\r\n";			$send.= "Host:{$Query['host']}\r\n";			//$send.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5\r\n";			$send.= "Referer:http://{$Query['referer']}/\r\n";			//$send.= "Content-Length: ".strlen($Query['file'])."\r\n";			$send.= "Connection: Close\r\n\r\n";			fwrite($this->_fp, $send);			while ( !feof( $this->_fp) ) {				$state = fgets($this->_fp, 128);				if (stristr($state, 'HTTP/1.1 200 OK') === true){					 return true;				}else{					$this->errno = $state;					$this->error = '服务器内部'.$state.'请求错误!';					return true;				}			}			$this->error = '服务器内部'.fgets($this->_fp, 128).'请求错误!';			return false;		}else{			$this->error = ('必须现链接服务器');			return false;		}	}	/*	从客户端提交数据到服务器	*/	public function getContent(){		$header = fgets($this->_fp, 4096);		while ( !feof( $this->_fp ) ) {			 $data.= fgets( $this->_fp , 4096);		}		$array = explode("\r\n\r\n", $data);		$data = '';		if (count($array)>2){			$data['headers'] =  array_shift($array);			$data['body'] =  implode('', $array);		}else{			$data['headers'] =  $array[0];			$data['body'] =  $array[1];		}		return $data;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -