问题 1
我曾经将该行用于我的游戏服务器的 PHP 解析器文件,但它不再工作了。我知道有这样的fopen("php://stdin")
东西,但现在是 3 行代码而不是只有 1 行,为什么 PHP 会这样做?
问题2
另外,当我使用该方法时,我不断得到这个输出,这导致我的脚本无法读取解析器输出的命令,我该如何停止它?
X-Powered-By: PHP/5.2.12
Content-type: text/html
我尝试将 Content-Type 设置为 text/plain 并没有做任何事情......
这是基本代码:
#!/usr/bin/php
<?php
while (1):
$line = rtrim(fgets(STDIN, 1024));
$line = explode(" ", $line);
switch ($line[0]):
// NEW_ROUND <date> <time>
// PLAYER_ENTERED <nice_name> <ip> <real_name>
case "PLAYER_ENTERED":
print "PLAYER_MESSAGE {$line[1]} WELCOME TO TRONNERS!\n";
break;
// PLAYER_LEFT <nice_name> <ip>
// RACE_DONE
case "RACE_DONE":
print "CONSOLE_MESSAGE RACING TIMEKEEPER COMING SOON!\n";
break;
// ROUND_COMMENCING <round> <max_rounds>
case "ROUND_COMMENCING":
print "CENTER_MESSAGE What's the name of this map?\n";
break;
endswitch;
endwhile;
?>
我正在使用尾部来保持将行发布到进入 PHP 解析器的文件中,然后将解析后的输出通过 tee 发送到另一个命令文件。