$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");
答案 0 :(得分:1)
我不能肯定地说你为什么会得到破损的管道错误。我在我的系统上测试了代码,它运行得很好。
然而,在这种情况下更好的解决方案可能只是使用PHP而不是通过第三方程序。使用file()
和一些简单的数组操作获取文件的第一行是微不足道的:
$data = file ($filename);
if (is_array ($data)) {
echo "Error reading file!";
return 1;
}
echo $data[0];
如果文件太大而无法一次包含在内存中,那么您可以使用fopen()
和fread()
一次读取一行。只需记住在函数周围添加检查,以处理可能发生的错误情况。