0
$php index2.php testphp
$filename = $argv[1];
echo shell_exec("cat ".$filename." | head -1");
导致以下错误:
cat: write error: Broken pipe error
我不知道为什么我收到这个错误。更改为以下仍然给我的错误:
echo shell_exec("cat testphp | head -1");
只是一个侧面说明,但你_really_应该在文件名上使用'escapeshellarg()'。不仅要防止shell代码注入攻击,还要确保正常的文件名不会对代码造成严重破坏。 – ChristianF
除了@ChristianF所说的,你应该考虑直接使用PHP来获取文件的第一行。请注意,像大多数其他工具一样,'head'能够自己读取文件,因此无论采用哪种方式都不需要使用管道。 –
@TomFenech改变代码,所以没有管道,只是用头来读取文件修复了这个问题,谢谢。如果你想发布一个答案,我可以接受它。 – NeverPhased