php中fsockopen用法实例

作者:ca88编程

本文实例汇报了php中fsockopen用法。分享给大家供我们参考。

$fp=fsockopen("127.0.0.1",80);     //张开数据流
if(!$fp)           //假如张开出错
{
  echo "unable to openn";       //输出内容
}
else            //假如成功开垦
{
  fwrite($fp,"get / http/1.0rnrn");     //向数据流写入内容
  stream_set_timeout($fp,2);       //实行过期设置
  $res=fread($fp,两千);        //读取内容
  $info=stream_get_meta_data($fp);      //获取数据流报头
  fclose($fp);          //关闭数据流
  if($info['timed_out'])        //假设超时
  {
    echo 'connection timed out!';      //输出内容
  }
  else
  {
    echo $res;          //输出读取内容
  }
}

 fsockopen

假若您要运用fsockopen函数大家必须在php.ini中把allow_url_fopen = On 设置为展开状态。

切实完结方式如下:

//实例二

以socket方式张开一个三翻五次

复制代码 代码如下:

//创设服务端
$socket=stream_socket_server("tcp://0.0.0.0:8000",$errno,$errstr);
//要是创造失利
if(!$socket)
{
  echo "$errstr ($errno)<br />n";
}
//假诺制产生功
else
{
  //接受连接
  while($conn=stream_socket_accept($socket))
  {
    //写入数据
    fwrite($conn,'the local time is '.date('n/j/y g:i a')."n");
    //关闭连接
    fclose($conn);
  }
  //关闭socket
  fclose($socket);
}

本身最常用的是模仿post

 fsockopen() Example

$fp=fsockopen("127.0.0.1",80);     //张开数据流
if(!$fp)           //借使张开出错
{
  echo "unable to openn";       //输出内容
}
else            //若是成功开垦
{
  fwrite($fp,"get / http/1.0rnrn");     //向数据流写入内容
  stream_set_timeout($fp,2);       //实行过期设置
  $res=fread($fp,3000);        //读取内容
  $info=stream_get_meta_data($fp);      //获取数据流报头
  fclose($fp);          //关闭数据流
  if($info['timed_out'])        //假使超时
  {
    echo 'connection timed out!';      //输出内容
  }
  else
  {
    echo $res;          //输出读取内容
  }
}
 
//实例二
 
//创造服务端
$socket=stream_socket_server("tcp://0.0.0.0:8000",$errno,$errstr);
//假若创设退步
if(!$socket)
{
  echo "$errstr ($errno)<br />n";
}
//假若创建成功
else
{
  //接受连接
  while($conn=stream_socket_accept($socket))
  {
    //写入数据
    fwrite($conn,'the local time is '.date('n/j/y g:i a')."n");
    //关闭连接
    fclose($conn);
  }
  //关闭socket
  fclose($socket);
}
 
//
 
$file="test.txt";       //定义文件
$fp=fopen($file,"w");      //展开数据流
if($fp)        //假设成功展开
{
  stream_set_write_buffer($fp,0);   //设置缓冲区
  fwrite($fp,$output);      //写入内容
  fclose($fp);       //关闭数据流
}

//

其一是小李发现的到的...不错

 代码如下

盼望本文所述对大家的php程序设计具备支持。

$file="test.txt";       //定义文件
$fp=fopen($file,"w");      //张开数据流
if($fp)        //假如成功开荒
{
  stream_set_write_buffer($fp,0);   //设置缓冲区
  fwrite($fp,$output);      //写入内容
  fclose($fp);       //关闭数据流
}

至于要效仿get情势....直接file_get_content就行了.

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />n";
} else {
    $out = "GET / HTTP/1.1rn";
    $out .= "Host: www.example.comrn";
    $out .= "Connection: Closernrn";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

你或然感兴趣的稿子:

  • 使用PHP fsockopen 模拟POST/GET传送数据的不二等秘书籍
  • php使用fsockopen函数发送post,get央求获取网页内容的法子
  • php fsockopen伪造post与get方法的详解
  • php自动提交表单的章程(基于fsockopen与curl)
  • 宣布多少个用PHP fsockopen写的HTTP下载的类
  • php fsockopen化解办法 php完毕八线程
  • php利用fsockopen GET/POST提交表单及上传文件

代码见前面

伪造post

 

POST HTTP央浼(U哈弗L)并拿走再次回到值

stream_socket_client, 代码见后边

 代码如下

其一和fsockopenfsockopen同样.以socket格局打开二个总是,只是参数不相同

<?php 

 

  $srv_ip = '192.168.1.5';//你的对象服务地址. 

stream_socket_server

  $srv_port = 80;//端口 

ca88编程 ,确立一个socket server端, 代码见前边

  $url = ''; //接收你post的U景逸SUVL具体地址  

尽管是起家的是tcp的server 就用stream_socket_accept举办报纸发表

  $fp = ''; 

一经是确立的是udp的server 就用stream_socket_recvfrom和stream_socket_sendto进行报导,况兼stream_socket_server中须要加个参数STREAM_SERVER_BIND

  $errno = 0;//错误管理 

 

  $errstr = '';//错误管理 

还会有个socket扩充,那个是最基础的创设socket,不过从5.3.0从头就放置pecl中了.

  $timeout = 10;//多久未有连上就半涂而废 

此处就不介绍了.

  $post_str = "username=demo&password=hahaha";//要付出的内容. 

 

  //展开互连网的 Socket 链接。 

---------------------------- stream_socket client---------------------------

  $fp = fsockopen($srv_ip,$srv_port,$errno,$errstr,$timeout); 

 

  if (!$fp){ 

<?php

   echo('fp fail'); 

/**

  } 

 * @name test.php

  $content_length = strlen($post_str); 

 * @date Sun Jan 27 00:49:00 CST 2008

  $post_header = "POST $url HTTP/1.1rn"; 

 * @copyright 马永占(MyZ)

  $post_header .= "Content-Type: application/x-www-form-urlencodedrn"; 

 * @author 马永占(MyZ)

  $post_header .= "User-Agent: MSIErn"; 

 * @link

  $post_header .= "Host: ".$srv_ip."rn"; 

 */

  $post_header .= "Content-Length: ".$content_length."rn"; 

 

  $post_header .= "Connection: closernrn"; 

$xport = "tcp";

  $post_header .= $post_str."rnrn"; 

$port = "8001";

  fwrite($fp,$post_header); 

$ip = "127.0.0.1";

 

$address = "{$xport}://{$ip}:{$port}";

  $inheader = 1; 

$fp = stream_socket_client($address, $errno, $errstr, 1);

  while(!feof($fp)){//测量试验文件指针是不是到了文本截至的任务 

if (!$fp) {

   $line = fgets($fp,1024); 

    echo "$errstr ($errno)<br /> ";

   //去掉诉求包的头音讯 

} else {

   if ($inheader && ($line == "n" || $line == "rn")) { 

    fwrite($fp, " ");

         $inheader = 0; 

    echo fread($fp, 1024);

    } 

    fclose($fp);

    if ($inheader == 0) { 

}

      echo $line; 

本文由ca88发布,转载请注明来源

关键词: ca88网址