PHP fsockopen函数详解

fsockopen(主机名称,端口号码,错误号的接受变量,错误提示的接受变量,超时时间)

主机名称就是你需要发送数据的目的地;

端口号就是这个目的程序会在哪个端口等着你的数据;

错误号的接受变量,这个是如果建立socket不成功的时候返回的错误编号;

错误提示的变量,是错误的时候返回的错误提示信息;

超时时间,就是post数据之后如果对方没有回应信息,等待的最长时间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
set_time_limit(0);
$fp = fsockopen ( "www.vicenteforever.com" , 80, $errno , $errstr , 30);
if (! $fp ) {
    echo "$errstr ($errno)<br />\n" ;
} else {
    $out = "POST / HTTP/1.1\r\n" ;
    $out .= "Host: www.vicenteforever.com\r\n" ;
    $out .= "Connection: Close\r\n\r\n" ;
    fwrite( $fp , $out );
    while (! feof ( $fp )) {
        echo fgets ( $fp , 128);
    }
    fclose( $fp );
}

运行此文件看看,是不是你想要的结果。如果你把打开地址改成www.twitter.com,页面会提示[由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (10060)]这样的信息,说明fsockopen目标网站失败。

为啥$out里面变量需要定义呢?

1
2
3
$out = "POST / HTTP/1.1\r\n" ;
$out .= "Host: www.vicenteforever.com\r\n" ;
$out .= "Connection: Close\r\n\r\n" ;

其实就是给目的地址一个协议串。正常网站的请求头信息如图:

为啥需要\r\n呢?

fgets会获取文件描述符$fp的当前的128(也可能是别的常数)个字节,如果还没有到128个字节遇到换行符了,则只返回换行符及换行符之前的内容。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值