如何在PHP中更改IP地址
我正在用PHP开发一个系统,在这个系统中,我可以以web形式更改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"); ?> 不如这样做,当您看到您试图执行的命令时,可能更容易发现“错误”
<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);