exec()不能发送我发送的所有命令

时间:2015-05-13 14:44:51

标签: php linux

我正在为设备创建一个网站,以便用户可以更改其连接的主要和次要IP。我正在使用' exec()'为我获取知识产权。我为那个叫做'File_read'那工作得很好。我遇到的问题是将其保存回同一个文件。我仍然使用' exec()',该函数被称为' file_write'。下面是我的两个代码

function file_read()
{
$arr_out = "";
$arr_test_1 = "";
$arr_test_2 = "";

exec(@'cat /usr/triton/config/protman.conf | grep "Primary ="',$arr_test_1);
exec(@'cat /usr/triton/config/protman.conf | grep "Secondary ="',$arr_test_2);
$arr_out[0] = IP_edit(end($arr_test_1));
$arr_out[1] = IP_edit(end($arr_test_2));

$arr_out[2] = end($arr_test_1);
$arr_out[3] = end($arr_test_2);

return $arr_out;
}

function file_write($arr_in)
{
$save_1 = "";
$save_2 = "";
$build_1 = "";
$build_2 = "";

$build_1 = 'Primary = "'.$arr_in[0].'";';
$build_2 = 'Secondary = "'.$arr_in[1].'";';

$save_1 = @"sed -i 's/".$arr_in[2]."/".$build_1."/' /usr/triton/config/protman.conf";
$save_2 = @"sed -i 's/".$arr_in[3]."/".$build_2."/' /usr/triton/config/protman.conf";

echo "<br/>test save 1 = ".$save_1;
echo "<br/>test save 2 = ".$save_2;

exec($save_1);
exec($save_2);

}

我测试了它构建的字符串以写入文件但是它如下。

sed -i 's/Primary = "10.200.26.144";/Primary = "10.98.227.30";/' /usr/triton/config/protman.conf 

这适用于$ save_1&#39;。当我在腻子上使用它时它起作用,为什么它不适用于&#39; exec()&#39;?我错过了什么或是他们更容易做到这一点吗?

1 个答案:

答案 0 :(得分:0)

PHP执行此命令和访问此文件的权限吗?

另外,您可以尝试向$out函数提供第二个参数exec(作为数组)来处理详细信息/ info