誰でも助けることができます、PHPを使用してLinuxでコマンド出力の出力からリアルタイム出力を読む方法。私は、ボタンを提出し、私は何を提出していない押したときに来ている取得していますコマンドライン出力を読む
<?php
if (isset($_POST['pyinp'])){
$cmd = "ping 127.0.0.1";
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w") // stderr is a pipe that the child will write to
);
flush();
$process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array());
echo "<pre>";
if (is_resource($process)) {
while ($s = fgets($pipes[1])) {
print $s;
flush();
}
}
echo "</pre>";
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="#" method="POST">
<input name = "pyinp" type="submit">
</form>
</body>
</html>
:以下
は、私が試したコードが、動作していないです。
私はhtmlとphpの新機能です。私はちょうどオンラインでコードする。コードの下
が働いている:
<!DOCTYPE html>
<html>
<body>
<form action="#" method="POST">
<input name = "pyinp" type="submit">
</form>
<?php
if (isset($_POST['pyinp'])){
$cmd = "ping 127.0.0.1";
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("pipe", "w") // stderr is a pipe that the child will write to
);
echo "<pre>";
if(($fp = popen("ls -l", "r"))) {
while(!feof($fp)){
echo fread($fp, 1024);
flush(); // you have to flush buffer
}
fclose($fp);
}
}
?>
</body>
</html>
をしかし、私はのping 127.0.0.1と
おかげ
ちょっとした注意:フォームのHTML構文が間違っています。 – reporter
エラーメッセージや警告メッセージがありますか?何が動作していない、詳細を与えてください。 また、コードの先頭に '<?php'がありません。 –
@reporterとBenoit Zuのコード –