1

PHP:将多行命令行输出输出为不同的行。对不起,如果标题难以理解。基本上我希望我的输出像 A,而不是 B。它目前看起来像 B。我已经尝试过 nl2br。我试图运行的脚本是:

脚本:

echo "病毒扫描结果:";
$scanme = system('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
printf(nl2br($scanme));

A:

802931t_e_s_t.txt:好的
----------- 扫描摘要 -----------
已知病毒:574585
引擎版本:0.95.1
扫描目录:0
扫描文件:1
受感染的文件:0
扫描数据:0.00 MB
数据读取:0.00 MB(比率 0.00:1)
时间:2.352 秒(0 米 2 秒)
时间:2.352 秒(0 米 2 秒)

乙:

802931t_e_s_t.txt:OK ----------- 扫描摘要 ----------- 已知病毒:574585 引擎版本:0.95.1 扫描目录:0 扫描文件:1 受感染文件: 0 扫描的数据:0.00 MB 读取的数据:0.00 MB(比率 0.00:1) 时间:2.352 秒(0 m 2 s) 时间:2.352 秒(0 m 2 s)

4

3 回答 3

4

如果这是在命令行上,为什么要使用 nl2br?

nl2br 输出<br />新行的标签...这在命令行上没有任何意义

编辑

两件事情:

1次尝试

system('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);

2您可能想使用exec函数而不是 system

例如

exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
$scanme = implode("\n",$scanme);

exec ( 字符串 $command [, 数组 &$output [, int &$return_var ]] )

于 2009-06-18T07:14:57.170 回答
1

您是否尝试过直接打印命令的输出?

echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);

PS。你真的应该像这样清理输入(如果你还没有这样做的话):

$furl = escapeshellarg($furl)

escapeshellarg() - 转义要用作 shell 参数的字符串

于 2009-06-18T07:28:36.147 回答
0

如果您在命令行上运行,则换行符表示为“\n”,或在 Windows 环境中表示为“\r\n”。因此,请确保每行末尾都有一个 \n,并且您应该得到您想要的输出。编辑:
汤姆:哎呀。固定的。

于 2009-06-18T07:21:32.133 回答