HTML和CLI的线路破坏



我有一个脚本,可以从浏览器和CLI中称为。它会产生输出,因此添加新行是必须的。但是,如果您从浏览器查看,则.php在从CLI观看时使用<br>,其rnPHP_EOL

echo 'output1';
if $browser
{
    echo '<br>';
}
else
{
    echo "rn";
}
echo 'output2';

是否有通用字符?

PHP二进制文件的版本可能会有所不同,例如,在具有fastcgi的服务器上,PHP二进制可能指向 php-cgi

因此,要以接口独立的方式测试CLI,以检查$_SERVER变量的内容是一种更首选的方式。

我认为这将处理脚本是否从

运行的所有检查
  1. 命令行
  2. 作为Cron Job
  3. php二进制
  4. 浏览器
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';

最新更新