PHP:将多行命令行输出输出为不同的行

PHP:将多行命令行输出输出为不同的行,php,command-line,command,lines,Php,Command Line,Command,Lines,PHP:将多行命令行输出输出为不同的行。 如果标题很难理解,很抱歉。基本上,我希望我的输出像A,而不是B。它目前看起来像B。我尝试了nl2br。我尝试运行的脚本是: 脚本: echo "Virus Scan Results:"; $scanme = system('cd /var/www/upload/files; clamscan --remove=yes '.$furl); printf(nl2br($scanme)); echo“病毒扫描结果:”; $scanme=system('cd/v

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

脚本:

echo "Virus Scan Results:"; $scanme = system('cd /var/www/upload/files; clamscan --remove=yes '.$furl); printf(nl2br($scanme)); 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.00MB(比率0.00:1) 时间:2.352秒(0米2秒) 时间:2.352秒(0米2秒) B:

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

如果nl2br在命令行上,为什么要使用它

nl2br输出新行的标签。。。在命令行中没有任何意义

编辑

两件事:

1试试看

system('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
2您可能希望使用该功能而不是系统

e、 g


exec(string$command[,array&$output[,int&$return\u var]])

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

nl2br输出新行的标签。。。在命令行中没有任何意义

编辑

两件事:

1试试看

system('cd /var/www/upload/files; clamscan --remove=yes '.$furl, $scanme);
2您可能希望使用该功能而不是系统

e、 g


exec(字符串$command[,数组和$output[,int和$return\u var]])

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

汤姆:哎呀。已修复。

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

汤姆:哎呀。已修复。

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

echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
另外,你真的应该像这样对输入进行消毒(如果你还没有这样做):


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

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

echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
另外,你真的应该像这样对输入进行消毒(如果你还没有这样做):


-转义一个用作shell参数的字符串

结果是:733141t_e_s_t.txt:确定-----------扫描摘要------已知病毒:574585引擎版本:0.95.1扫描目录:0扫描文件:1感染文件:0扫描数据:0.00MB数据读取:0.00MB(比率0.00:1)时间:2.305秒(0米2秒)时间:2.305秒(0米2秒)它似乎只影响最后一行。有其他想法吗?733141t_e_s_t.txt:好-----------扫描摘要------已知病毒:574585引擎版本:0.95.1扫描目录:0扫描文件:1感染文件:0数据扫描:0.00MB数据读取:0.00MB(比率0.00:1)时间:2.305秒(0米2秒)时间:2.305秒(0米2秒)现在可以工作了,看起来$scanme实际上是在没有echo或printf的情况下输出数据的。谢谢你的帮助,不用担心。这些函数的文档表示system、exec等返回字符串。但这是返回的“最后”一行。可选的第二个/第三个参数用于输出变量。结果是:733141t_e_s_t.txt:确定-----------扫描摘要------已知病毒:574585引擎版本:0.95.1扫描目录:0扫描文件:1感染文件:0扫描数据:0.00MB数据读取:0.00MB(比率0.00:1)时间:2.305秒(0米2秒)时间:2.305秒(0米2秒)它似乎只影响最后一行。有其他想法吗?733141t_e_s_t.txt:好-----------扫描摘要------已知病毒:574585引擎版本:0.95.1扫描目录:0扫描文件:1感染文件:0数据扫描:0.00MB数据读取:0.00MB(比率0.00:1)时间:2.305秒(0米2秒)时间:2.305秒(0米2秒)现在可以工作了,看起来$scanme实际上是在没有echo或printf的情况下输出数据的。谢谢你的帮助,不用担心。这些函数的文档表示system、exec等返回字符串。但这是返回的“最后”一行。可选的第二个/第三个参数用于输出变量。
echo "Virus Scan Results:";
echo exec('cd /var/www/upload/files; clamscan --remove=yes '.$furl);
$furl = escapeshellarg($furl)