为什么不是';t PHP';在使用Apache操作时定义了什么STDIN?
我正在Centos 6上运行PHP 5.5.24版。似乎暗示我应该使用已定义的常量为什么不是';t PHP';在使用Apache操作时定义了什么STDIN?,php,linux,apache,stdin,Php,Linux,Apache,Stdin,我正在Centos 6上运行PHP 5.5.24版。似乎暗示我应该使用已定义的常量STDIN,但是,如使用Apache执行时所示,它没有定义 <?php $input = fgets(STDIN); 根据deceze的评论 FWIW、STDIN似乎仅由CLI SAPI定义: php.net/manual/en/features.commandline.io-streams.php 根据deceze的评论 FWIW、STDIN似乎仅由CLI SAPI定义: php.net/manual/e
STDIN
,但是,如使用Apache执行时所示,它没有定义
<?php
$input = fgets(STDIN);
根据deceze的评论
FWIW、STDIN似乎仅由CLI SAPI定义:
php.net/manual/en/features.commandline.io-streams.php
根据deceze的评论
FWIW、STDIN似乎仅由CLI SAPI定义:
php.net/manual/en/features.commandline.io-streams.php
stdin
是一个文件句柄,而不是常量。您可以在fread/fwrite类型的操作中使用它,但在echo/print中不能使用它。它不是一个传统的define()
'd常量。@MarcB$input=fgets(STDIN)代码>也会导致未定义的错误。另外,请参阅我编辑的关于CLI的文章。stdin/stdout通常也仅在CLI php中可用。你是通过php-fpm
提供php,还是使用超级垃圾mod_-php
?@N.B.可能更晚。如何检查?stdin
是一个文件句柄,不是常量。您可以在fread/fwrite类型的操作中使用它,但在echo/print中不能使用它。它不是一个传统的define()
'd常量。@MarcB$input=fgets(STDIN)代码>也会导致未定义的错误。另外,请参阅我编辑的关于CLI的文章。stdin/stdout通常也仅在CLI php中可用。你是通过php-fpm
提供php,还是使用超级垃圾mod_-php
?@N.B.可能更晚。我怎么查?
[Michael@devserver ~]$ php -r 'echo(STDIN);'
Resource id #1
[Michael@devserver ~]$