【发布时间】:2023-08-28 01:48:01
【问题描述】:
我正在创建一个 IRC 机器人,我想将一些功能存储在不同的文件中。我用include() 在我的主文件中引用该文件,它可以工作,但是当我尝试给fwrite() 一个像这样的变量时:
$data ="THIS IS DATA\r\n";
fwrite($sock, $data);
它会抛出这个错误:
PHP 警告:feof() 期望参数 1 为资源,在第 18 行的 /home/kinz/Desktop/Eve/Eve.php 中给出 null
PHP 警告:fgets() 期望参数 1 为资源,在 /home/kinz/Desktop/Eve/Eve.php 上给出 null
但是当我把:
fwrite($sock, "THIS IS DATA\r\n");
它工作得很好。这是我的完整代码:
function connect_s ($serv, $port, $nick) { $sock = fsockopen($serv, $port); fwrite($sock, "USER $nick $nick $nick :$nick\r\n"); fwrite($socket, "NICK $nick\r\n"); }
function write_d ($data) { fwrite($sock, $data); }
function join_c ($chan) { write_d("JOIN $chan\r\n"); }
function get_in ($in) { for ($i = 3; $i <= count($in); $i++) { $out .= " $in[$i]"; } return trim("$out\r\n"); }
function change_n ($nick) { write_d("NICK $nick\r\n"); } ?>
我想知道为什么我不能在fwrite中使用变量作为第二个参数。非常感谢任何帮助
【问题讨论】:
-
参数1是
$sock不是$data。 -
然而,当我手动设置参数 2 时,它解决了问题..
-
$sock 不是资源ID,请确保你打开服务器并分配给$sock ($sock = fsockopen...) 之前
-
试试 var_dump($sock)。仅仅因为设置第二个参数消除了警告并不意味着它有效。