PHP中使用socket方式GET、POST数据实例

 更新时间:2015年04月02日 09:26:45   投稿:junjie  
这篇文章主要介绍了PHP中使用socket方式GET、POST数据实例,本文分别给出GET方式和POST方式的代码实例,需要的朋友可以参考下

1. 使用 PHP 获得网页内容 GET方式

复制代码 代码如下:

<?php
function socketGet($url, &$ret)
{
 $urlArr = parse_url($url);
 $host = $urlArr['host'];
 $port = isset($urlArr['port'])?$urlArr['port']:80;
 $path = isset($urlArr['path'])?$urlArr['path']:"/";
 $fp = fsockopen($host, $port, $errno, $errstr, 30);
 if (!$fp)
 {
  echo "$errstr ($errno)<br />\n";
  return false;
 }
 else
 {
     $out = "GET $path HTTP/1.1\r\n";
     $out .= "Host: $host\r\n";
     $out .= "Connection: Close\r\n\r\n";
  $ret = "";
     fwrite($fp, $out);
     while (!feof($fp))
  {
         $ret .= fgets($fp, 128);
     }
     fclose($fp);
 }
 return true;
}
?>

2. 使用 PHP 向页面 POST 数据

复制代码 代码如下:

<?php
function socketPost($url, $data, &$ret)
{
 $urlArr = parse_url($url);
 $host = $urlArr['host'];
 $port = isset($urlArr['port'])?$urlArr['port']:80;
 $path = isset($urlArr['path'])?$urlArr['path']:"/";
 $fp = fsockopen($host, $port, $errno, $errstr, 30);
 if (!$fp)
 {
     echo "$errstr ($errno)<br />\n";
  return false;
 }
 else
 {
     $out = "POST $path HTTP/1.1\r\n";
     $out .= "Host: $host\r\n";
  $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
  $out .= "Content-Length: ".strlen($data)."\r\n";
     $out .= "Connection: Keep-Alive\r\n\r\n";
  $out .= $data;
  $ret = "";
     fwrite($fp, $out);
     while (!feof($fp))
  {
         $ret .= fgets($fp, 128);
     }
     fclose($fp);
 }
 return true;
}
?>

如果post报错,把$out .= "Connection: Keep-Alive\r\n\r\n";中的Keep-Alive改成Close

相关文章

  • Laravel中9个不经常用的小技巧汇总

    Laravel中9个不经常用的小技巧汇总

    这篇文章主要给大家总结介绍了关于Laravel中9个不经常用的小技巧,文中通过示例代码介绍的非常详细,对大家学习或者使用Laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Laravel框架学习笔记(一)环境搭建

    Laravel框架学习笔记(一)环境搭建

    本文主要是把自己学习Laravel框架中的经验写下来。这是本系列的第一篇,工欲善其事必先利其器,先把环境搭建好吧,之前也没写过什么文章,可能文章结构比较混乱,想到那写到哪。
    2014-10-10
  • PHP中文分词 自动获取关键词介绍

    PHP中文分词 自动获取关键词介绍

    用了大家熟知的scws 还有phpanalysis ,需要的朋友可以参考下
    2012-11-11
  • Laravel下生成验证码的类

    Laravel下生成验证码的类

    这篇文章主要为大家详细介绍了Laravel下生成验证码的类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Laravel 实现在Blade模版中使用全局变量代替路径的例子

    Laravel 实现在Blade模版中使用全局变量代替路径的例子

    今天小编就为大家分享一篇Laravel 实现在Blade模版中使用全局变量代替路径的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • 详解WordPress中添加友情链接的方法

    详解WordPress中添加友情链接的方法

    这篇文章主要介绍了详解WordPress中添加友情链接的方法,分别介绍了使用模板和使用jQuery的实现方法,需要的朋友可以参考下
    2016-05-05
  • laravel实现批量更新多条记录的方法示例

    laravel实现批量更新多条记录的方法示例

    最近在使用Laravel,想批量插入近千条数据,通过网上找到了相关的解决方法,所以下面这篇文章主要给大家介绍了关于laravel实现批量更新多条记录的相关资料,文中给出了详细的示例代码,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • php生成静态html页面的方法(2种方法)

    php生成静态html页面的方法(2种方法)

    在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板、ob系列的函数,本文给大家分享php生成静态html页面的方法(2种方法),感兴趣的朋友跟着小编一起学习学习吧
    2015-09-09
  • PHP保存带BOM文件的方法

    PHP保存带BOM文件的方法

    这篇文章主要介绍了PHP保存带BOM文件的方法,本文相当简短,因为方法也很简单,不需要过多描述,需要的朋友可以参考下
    2015-02-02
  • yii2 在控制器中验证请求参数的使用方法

    yii2 在控制器中验证请求参数的使用方法

    这篇文章主要介绍了yii2 在控制器中验证请求参数的使用方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06

最新评论