用php对配置文件进行修改操作,怎么才能只改变其中某一项的参数,其他的不变呢!
例如:
我只需要改变Avai_Start_Time为1200,其他参数不变!我用fprintf函数,可以改变Avai_Start_Time的参数,但是整个配置文件里就只有Avai_Start_Time这一个参数,其他参数丢失。
Avai_WeekDay=127
Avai_Start_Time=0
Avai_End_Time=2300
望高手指点!
例如:
我只需要改变Avai_Start_Time为1200,其他参数不变!我用fprintf函数,可以改变Avai_Start_Time的参数,但是整个配置文件里就只有Avai_Start_Time这一个参数,其他参数丢失。
Avai_WeekDay=127
Avai_Start_Time=0
Avai_End_Time=2300
望高手指点!
$content = str_replace('Avai_Start_Time=0','Avai_Start_Time=123');
$f = fopen('config.txt','w');
fwrite($f,$content);
fclose($f);
$content = str_replace("Avai_Start_Time=0","Avai_Start_Time=123","$content");
$f = fopen('php11.ini','w');
fwrite($f,$content);
fclose($f);现在的问题是:
1.配置文件中有2个Avai_Start_Time=参数,也就是Avai_Start_Time=0和Avai_Start_Time=123都存在。
2.还有这个配置文件随时在变化。也就是被替换的Avai_Start_Time=0随时在变。
这位大哥,帮我看看,第一次弄这个,脑壳都大了。。
不是配好了就不变了。
xml是好。但是他们做成了xxx.ini文件。没办法。
麻烦各位 大哥帮帮忙啊!
这样试试:
$content = preg_replace("/Avai_Start_time=\d+/","Avai_Start_time=123",$content);
这位大哥。先谢了哈、
不过我还有个疑问,不知道这个问题可不可以把配置文件读到一个数组中,再对这个数组进行操作。
但是我想在数组元素中找到我们需要修改的变量也是个问题。问题已经搞定,不过初学PHP,暂不结帖。想看看还有其他方法处理这个问题不?
$arr = file('config.txt');
$arr[9] = "Avai_Start_time=123\n";
$f = fopen('config.txt','w');
fwrite($f,implode($arr));
fclose($f);
while (!feof($file_handle))
{
$line = fgets($file_handle);
$str=strstr($line,'Avai_Start_Time=');
echo $str;
$content=file_get_contents('php11.ini');
$content= str_replace($str,"Avai_Start_Time=1234\r\n",$content);
$f=fopen('php11.ini','w');
fwrite($f,$content);
fclose($f);
}
fclose($file_handle);
加个i修正符,可以忽略大小写。