无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(php fsockopen) PHP函数介绍—fsockopen(): 打开一个网络连接 PHP fsockopen() 函数使用简介 全网首发(图文详解1)

前沿技术 Micheal 8个月前 (05-13) 78次浏览 已收录 扫描二维码

PHP函数介绍—fsockopen(): 打开一个网络连接 (php fsockopen)

PHP的fsockopen() 函数可以用来打开一个网络连接或者是一个Unix 域套接字连接。主要常用于创建一个网络连接并发送 HTTP 请求,也可以用于SMTP,POP3等协议的实现。

一般来说,函数的形式如下:

fsockopen(hostname, port, errno, errstr, timeout);

其中:

  • hostname: 是你希望连接的主机名或者IP地址。
  • port: 是你希望连接的主机上的端口。详情你可以参考IANA的端口列表。
  • errno和errstr: 必须同时使用,若连接遇到错误,这两者将通过引用(reference)分别得到错误的编号和描述。
  • timeout: 这个选项表示了到服务器的连接等待超时的时间,由秒数来表示。

在使用fsockopen()实现http请求的流程如下:

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

以上代码中,我们首先试图打开到www.example.com网站80端口的连接,然后发送一个简单的GET请求。注意,我们需要显式地发送Connection: Close,来告诉服务器我们完成了请求后将会关闭连接,这样服务器就会把响应全部发给我们。然后我们读取服务器的响应并输出,直到全部读完后我们关闭连接。

错误处理被做成了如果不能打开连接,那就输出错误信息。在实际的运用中,你可能想要更复杂的错误处理机制。
使用java的ArrayList.add()函数向ArrayList中添加元素 ArrayList实现及添加元素方法 全网首发(图文详解1)
如何在QQ浏览器中保存密码和登录账号 QQ浏览器密码管理设置 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝