如何在PHP中更改IP地址

如何在PHP中更改IP地址,php,linux,Php,Linux,我正在用PHP开发一个系统,在这个系统中,我可以以web形式更改IP地址和子网掩码 以下是我目前的尝试: <pre><code><?php echo "Old IP: ".$old_ip; echo "New IP: ".$stat_ip; system("sed -i 's|".$old_ip."|".$stat_ip."|g' /etc/.../.../ifcfg-eth0"); ?> 不如这样做,当您看到您试图执行的命令时,可能更容易发现“错误”

我正在用PHP开发一个系统,在这个系统中,我可以以web形式更改IP地址和子网掩码

以下是我目前的尝试:

<pre><code><?php

echo "Old IP: ".$old_ip;
echo "New IP: ".$stat_ip;

system("sed -i 's|".$old_ip."|".$stat_ip."|g' /etc/.../.../ifcfg-eth0");

?>

不如这样做,当您看到您试图执行的命令时,可能更容易发现“错误”:

这样,您就更容易调试命令

错误消息表明您的命令格式有点不正确

用法:sed[选项]。。。 {仅当没有其他脚本时使用脚本} [输入文件]

-n、 安静,安静 禁止自动打印图案空间-e脚本, --表达式=脚本 将脚本添加到要执行的命令-f 脚本文件,--file=脚本文件 将脚本文件的内容添加到要执行的命令中 已执行--跟随符号链接 就地处理时遵循符号链接-i[后缀], --就地[=后缀] 就地编辑文件(如果提供扩展名,则进行备份)
-Ln,--线长度=N 为'l'命令指定所需的换行长度
--posix 禁用所有GNU扩展-r、 --regexp扩展 在脚本中使用扩展正则表达式-s --分开 把文件看成单独的而不是单一的 连续的 长河-u、 --无缓冲 从输入文件加载最少数量的数据并刷新 输出缓冲更频繁 --帮助显示此帮助并退出 --版本输出版本信息并退出

如果没有-e、-expression、-f或--file 给出了选项,然后是第一个选项 非选项参数作为 使用sed脚本进行解释。全部的 其余参数是输入的名称 文件夹;如果没有输入文件 指定,则标准输入为 阅读

电子邮件错误报告至:bonzini@gnu.org . 确保包含单词
sed“”
在
Subject:“”字段中的某个位置


您是否对变量进行转义以使其不包含正则表达式特殊字符?如果您所做的只是调用
system()
,为什么需要安装PHP加上额外的精简间接寻址?如果我得到一个无效命令,它会首先打印命令,以便查看它的外观。感谢您的帮助…我尝试过,但问题仍然是“unterminated's'command”@hmbarit,是的,但您可能更容易调试它。检查我在回答中提到的类似问题的链接。他们得到的错误与您使用
sed
时的错误相同。谢谢!我检查了链接,它的值是固定的,我的情况是该值是动态的。如果我将该值设置为固定值(不是变量)…它会更改文件,但当它是变量时,会显示一条错误消息。@hmbarit,我的建议是,使用上面的代码,检查输出并使其首先使用静态大小写,然后移到“替换”即可动态的部分。这是最简单的方法。太好了!如果答案对你有帮助,不要忘了在答案左边将答案标记为“已接受答案”。欢迎来到SO。谢谢……但我只是linux命令的新手。如何将此应用于我的项目?
$command = "sed -i 's|".$old_ip."|".$stat_ip."|g' /etc/.../.../ifcfg-eth0";

echo "Executing command: $command";

system($command);