我有一个脚本,可以从浏览器和CLI中称为。它会产生输出,因此添加新行是必须的。但是,如果您从浏览器查看,则.php在从CLI观看时使用<br>
,其rn
或PHP_EOL
:
echo 'output1';
if $browser
{
echo '<br>';
}
else
{
echo "rn";
}
echo 'output2';
是否有通用字符?
PHP二进制文件的版本可能会有所不同,例如,在具有fastcgi
的服务器上,PHP二进制可能指向 php-cgi
。
因此,要以接口独立的方式测试CLI,以检查$_SERVER
变量的内容是一种更首选的方式。
我认为这将处理脚本是否从
运行的所有检查- 命令行
- 作为Cron Job
- php二进制
- 浏览器
function is_cli() { return ((empty($_SERVER['REMOTE_ADDR']) and ! isset($_SERVER['HTTP_USER_AGENT']) and count($_SERVER['argv']) > 0) ||defined('STDIN')) ? true : false; } echo 'output1'; if (is_cli()) { echo "rn"; } else { echo '<br>'; } echo 'output2';