<?php
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
$STDIN = fopen("/tmp/some-named-pipe", "r");
$STDOUT = fopen("/tmp/foo.out", "wb");
$STDERR = fopen("/tmp/foo.err", "wb");
echo "Hello, World!"; // goes to /tmp/foo.out, implied STDOUT
fscanf($STDIN, "%s\n", $top_secret); // explicit $STDIN, cant use STDIN
?>
新しいSTDOUTへのリダイレクトが暗黙的に機能するのはなぜですか?新しいSTDINからのリダイレクトは明示的に行われなければならないのはなぜですか?PHPでI/Oをリダイレクト
出力は、私にとっては '/ tmp/foo.out'にはなりません。あなたはどのPHPのバージョンを使用していますか? –
あなたが見ていると言っている$ STDOUTの動作を説明する文書はまったく見つかりません。 http://php.net/manual/en/wrappers.php.php http://php.net/manual/en/features.commandline.io-streams.php http://php.net/manual/ja/ language.variables.superglobals.php –
バージョン5.30の使用 –