Php HTML和CLI的换行符?
我有一个可以从浏览器和CLI调用的脚本。它产生输出,因此必须添加新行。但是,如果从浏览器查看,.php应该使用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查看\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服务器
变量的内容)是一种更可取的方法
我认为这将处理脚本是否从运行的所有检查
函数是{
返回($_服务器['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';