有人可以帮助我使用php函数fsockopen吗?
如果我这样调用函数:
$fp = fsockopen('xywqnda.com', 80, $errno, $errstr, 10);
如果主机域不可用,它将永远不会返回false,我不明白为什么!
答案 0 :(得分:1)
啊,你正在使用UDP。您的原始示例未显示此内容。这会改变一切。从PHP手册:
警告
即使无法访问远程主机,UDP套接字有时也会在没有错误的情况下打开。该错误只会 当您向套接字读取数据或从套接字写入数据时,这一点变得明显该 这是因为UDP是一种“无连接”协议 表示操作系统不会尝试为其建立链接 套接字直到它实际需要发送或接收数据。
答案 1 :(得分:0)
试试这个
ini_set("display_errors","on")
如果域无效,它将显示警告,除了该函数将返回TRUE因为返回文件指针,意味着文件已成功创建,仅当它无法创建文件时才会返回FALSE
答案 2 :(得分:0)
// displays all warnings, notices and errors
ini_set('display_errors', 1);
error_reporting(E_ALL);
$fp = fsockopen('xywqnda.com', 80, $errno, $errstr, 10);
连接尝试将在10秒后超时 您将收到警告,因为域名不可用 $ errno和$ errstr将包含系统错误号和错误消息 该函数将返回false,因此$ fp将等于false。
文档:fsockopen