• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • PHP - 利用Curl、socket、file_get_contents POST数据

    网络   2013/9/24 11:15:44

    // php的三种方法向远程服务器POST数据

    <?php    
    /**    
    * Socket版本
    * 使用方法:    
    * $post_string = "app=socket&version=beta";    
    * request_by_socket('facebook.cn','/restServer.php',$post_string);    
    */    
    function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30){    
        $socket = fsockopen($remote_server,$port,$errno,$errstr,$timeout);    
        if (!$socket) die("$errstr($errno)");    

        fwrite($socket,"POST $remote_path HTTP/1.0");    
        fwrite($socket,"User-Agent: Socket Example");    
        fwrite($socket,"HOST: $remote_server");    
        fwrite($socket,"Content-type: application/x-www-form-urlencoded");    
        fwrite($socket,"Content-length: ".strlen($post_string)+8."");    
        fwrite($socket,"Accept:*/*");    
        fwrite($socket,"");    
        fwrite($socket,"mypost=$post_string");    
        fwrite($socket,"");    

        $header = "";    
        while ($str = trim(fgets($socket,4096))) {    
                $header.=$str;    
        }    

        $data = "";    
        while (!feof($socket)) {    
                $data .= fgets($socket,4096);    
        }    

        return $data;    
    }    


    /**    
    * Curl版本    
    * 使用方法:    
    * $post_string = "app=request&version=beta";    
    * request_by_curl('http://facebook.cn/restServer.php',$post_string);    
    */    
    function request_by_curl($remote_server,$post_string){    
        $ch = curl_init();    
        curl_setopt($ch,CURLOPT_URL,$remote_server);    
        curl_setopt($ch,CURLOPT_POSTFIELDS,'mypost='.$post_string);    
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);    
        curl_setopt($ch,CURLOPT_USERAGENT,"Jimmy's CURL Example beta");    
        $data = curl_exec($ch);    
        curl_close($ch);    
        return $data;    
    }    
    /**    
    * 其它版本    
    * 使用方法:    
    * $post_string = "app=request&version=beta";    
    * request_by_other('http://facebook.cn/restServer.php',$post_string);    
    */    
    function request_by_other($remote_server,$post_string){    
        $context = array(    
                'http'=>array(    
                    'method'=>'POST',    
                    'header'=>'Content-type: application/x-www-form-urlencoded'."".    
                                'User-Agent : Jimmy's POST Example beta'."".    
                                'Content-length: '.strlen($post_string)+8,    
                    'content'=>'mypost='.$post_string)    
                );    
        $stream_context = stream_context_create($context);    
        $data = file_get_contents($remote_server,FALSE,$stream_context);    
        return $data;    
    }    

    ?>


    阅读(969) 分享(0)

    上一篇: PHP - Mysql数据库备份类
    下一篇: PHP - 比较全的CURL中文说明

  • 精彩推荐

    ◆ 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    ◆ 怎么判断银行卡号格式是否正确?
    ◆ 接口限流算法总结
    ◆ asp.net中Eval()、Bind()、<%%>、<%=%>比较有什么区别
    ◆ ASP.NET 获取上个月当前月的1号和月尾
    ◆ MySQL 百万级分页优化(Mysql千万级分页)
    ◆ FORM提交表单,数据由gb2312传到utf-8 乱码的解决方案.
    ◆ 程序员"偷懒"给软件带来安全隐患
    ◆ 如何防止被人肉?防人肉宝典——平时上网应该注意什么?
    ◆ Python识别网站验证码
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。