Вопрос 1
Раньше я использовал эту строку для моего файла парсера PHP для игрового сервера, но он больше не работает. Я знаю, что есть fopen("php://stdin")
, но теперь это 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, а затем выходные данные из анализируемого файла отправляются в другой командный файл через tee.