file,socket,curl发送http请求

file系列函数

  1. 示例一
$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);
  1. 示例二
$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请求)

  1. 示例一
 $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);

  1. 示例二
  $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);
  1. 示例三
   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

最为常见,也是最强大的,这里不在多说。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值