file系列函数
- 示例一
$html = file_get_contents('http://www.baidu.com');
var_dump($http_response_header);
$fp = fopen('http://www.baidu.com','r');
var_dump(stream_get_meta_data($fp));
fclose($fp);
- 示例二
$data = array();
$data = http_build_query($data);
$opt = array('http'=>array('method'=>'POST','header'=>""));
$content = stream_context_create($opt);
$html = file_get_contents('http://www.baidu.com',false,$content);
socket请求(不仅仅用于http请求)
- 示例一
$sock = fsockopen('127.0.0.1',8001,$errno,$errstr,1);
socket_set_blocking($sock,false);//是否阻塞
fwrite($sock,"send something\r\n");
while (!feof($sock)){//检测是否结束
fread($sock,128);
}
fclose($sock);
- 示例二
$post = array('data');
$data = http_build_query($post);
$sock = fsockopen('127.0.0.1',8001,$errno,$errstr,1);
$option = "POST http://url/api/id";
$option .= "HOST:url";
$option .= "other header option";
$option .= "Connect:close\r\n\r\n";
$send = $data.$option;
fwrite($sock,$send);
while (!feof($sock)){//检测是否结束
echo fgets($sock,1024);
}
fclose($sock);
- 示例三
set_time_limit(0);
$socket = socket_create(AF_INET,SOCK_STREAM,0) or die('can not create');
$result = socket_bind($socket,'132.232.41.105',12345) or die('can not bind');//绑定地址端口
$result = socket_listen($socket,5)or die('can not listen');//开始监听
//接受连接请求并调用另一个子socket处理客户端--服务器间的信息
$spawn = socket_accept($socket)or die('can not accept');
//读取客服端输入
$input = socket_write($spawn,2014)or die('can not write');
$input = trim($input);
//反转客服端输入数据,返回服务端
$output = strrev($input);
socket_write($spawn,$output,strlen($output)) or die('can not write output');
//关闭
socket_close($spawn);
socket_close($socket);
curl
最为常见,也是最强大的,这里不在多说。