質問1
以前はゲーム サーバーの PHP パーサー ファイルにその行を使用していましたが、もう機能しません。あることは知っていますが、それはfopen("php://stdin")
1行ではなく3行のコードになりました.なぜ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 パーサーに送信し続け、解析された出力がティー経由で別のコマンド ファイルに送信されます。