Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php HTML和CLI的换行符?_Php_Command Line Interface - Fatal编程技术网

Php HTML和CLI的换行符?

Php HTML和CLI的换行符?,php,command-line-interface,Php,Command Line Interface,我有一个可以从浏览器和CLI调用的脚本。它产生输出,因此必须添加新行。但是,如果从浏览器查看,.php应该使用,同时从CLI查看\r\n或php\u EOL: echo 'output1'; if $browser { echo '<br>'; } else { echo "\r\n"; } echo 'output2'; echo'output1'; 如果$browser { 回声“”; } 其他的 { 回显“\r\n”; } 回波“输出2”; 没有任何通用字符

我有一个可以从浏览器和CLI调用的脚本。它产生输出,因此必须添加新行。但是,如果从浏览器查看,.php应该使用

,同时从CLI查看
\r\n
php\u EOL

echo 'output1';
if $browser
{
    echo '<br>';
}
else
{
    echo "\r\n";
}
echo 'output2';
echo'output1';
如果$browser
{
回声“
”; } 其他的 { 回显“\r\n”; } 回波“输出2”;

没有任何通用字符吗?

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

因此,以独立于接口的方式测试cli(例如,检查
$\u服务器
变量的内容)是一种更可取的方法

我认为这将处理脚本是否从运行的所有检查

  • 命令行
  • 作为一个cron工作
  • PHP二进制文件
  • 浏览者
  • 函数是{
    返回($_服务器['REMOTE\u ADDR'])和!isset($_服务器['HTTP\u用户\u代理]])和计数($_服务器['argv'])>0)|已定义('STDIN')?true:false;
    }
    回波“输出1”;
    if(is_cli()){
    回显“\r\n”;
    }否则{
    回声“
    ”; } 回波“输出2”;

    没有。为了正确格式化输出,您需要知道如何调用程序。对于某些模板来说,这似乎是一个很好的例子:)您可以输出
    \r\n
    并在浏览器场景中使用特定的CSS(
    空白:pre
    $eol=php\u sapi\u name()?“\n”:“
    ”;回显'output1'。$eol'output2'
    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 "\r\n";
    } else {
      echo '<br>';
    }
    echo 'output2';