博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP利用socket来实现POST数据
阅读量:6400 次
发布时间:2019-06-23

本文共 1447 字,大约阅读时间需要 4 分钟。

hot3.png

PHP中,直接利用socket将数据POST到指定的地址

function postAsn($url,$post_arr,$errno = '',$errstr='',$time_out = 5) {    $result = '';    $arr = parse_url($url);    $arr['port'] || $arr['port'] = 80;        $post_data = "";    if($post_arr){        //在这里还可以使用 http_build_query() 函数,将post的内容编码        foreach ($post_arr as $key => $val){            $post_data .= urlencode($key) ."=". urlencode($val)."&";        }        $post_data = substr($post_data, 0,-1);        }    $data_len = strlen($post_data);    $arr['query'] && $arr['query'] = '?'.$arr['query'];    $out = "POST ".$arr['path'].$arr['query']." HTTP/1.1\r\n";    $out .= "Host: ".$arr['host']."\r\n";    $out .= "Content-type:application/x-www-form-urlencoded\r\n";    $out .= "Connection: Close\r\n";    $out .= "Content-Length:$data_len\r\n\r\n";    $out .= $post_data."\r\n";    try{        $fp = fsockopen($arr['host'],$arr['port'],$errno,$errstr,$time_out);        if(!$fp) {            return $errno." ".$errstr;        }        fwrite($fp,$out);        //在此也可以不读取响应的内容        while (!feof($fp)) {            $t =  fgets($fp, 128);            $result .= $t;                    }        fclose($fp);    }catch(Exception $e){        //在此处理异常        print_r($e);    }        return $result;}$url = 'http://yourlogin_url/';$post_param = array();$post_param['loginname'] = '';$post_param['loginpass'] = '';$res = postAsn($url,$post_param) ;print_r($res);

转载于:https://my.oschina.net/andyfeng/blog/322740

你可能感兴趣的文章
POJ3070-Fibonacci(矩阵快速幂)
查看>>
[vue插件]基于vue2.x的电商图片放大镜插件
查看>>
标准的组件结构
查看>>
vue——一个页面实现音乐播放器
查看>>
SVG 扬帆起航
查看>>
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
一起来将vscode变成私人定制笔记本
查看>>
Flutter 云音乐
查看>>
RecyclerView实现多type页面
查看>>
个人的web商城网站
查看>>
debian fcitx
查看>>
排中律与实无穷问题的性质分析
查看>>
08/23 学习总结
查看>>
关于Ubuntu下安装phpmyadmin后mysqli丢失的解决
查看>>
物理层
查看>>
linux多网卡路由设置
查看>>
win7环境下的栈溢出与实战
查看>>
查看ios字体库方法
查看>>