PHP 修改文本文件内容

本地有一个这种格式的文件
[Settings]
;文件版本,动态替换配置时需要变更
FileVersion=15
;产品类型
ProductType=5
;产品ID
ProductID=10001
;产品名称
ProductName=1倍场---zp
;游戏类型

请问用PHP 如何修改某项的值,并保存整个文件 比如 我要修改 ProductType的值为10

修改完成后
文件内容为
[Settings]
;文件版本,动态替换配置时需要变更
FileVersion=15
;产品类型
ProductType=10
;产品ID
ProductID=10001
;产品名称
ProductName=1倍场---zp
;游戏类型

<?php
//从文件中读取
$path = "1.txt";
$fp = file($path);
$arr = array();
foreach($fp as &$line){
$data = explode("=",$line);
if(count($data)>1)
{
$arr[]=array($data[0]=>$data[1]);
}else{
$arr[] = $line;
}
}


//假设要修改ProductType为10
setValue("ProductType","10",$arr);

//var_dump($arr);
//重新保存到文件
$fp = fopen("2.txt","w");
foreach($arr as $row){
if(is_array($row)){
foreach($row as $key=>$r){
fwrite($fp,$key."=".$r);
}
}else{
fwrite($fp,$row);
}
}
fclose($fp);


function setValue($name,$value,&$arr){
foreach($arr as $key=>$row){
if(is_array($row) && isset($row[$name])){
$arr[$key][$name] = $value;
//修改后记得加上换行
$arr[$key][$name] = $arr[$key][$name]."\n";
}
}

?>

我测试了可以使用,如果可以请将两个问题都采纳下,谢谢。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-11
给个思路你:
读取文件。
每次读取一行,
保存到一个数组,
最后循环数组

用str_replace();进行搜索替换
再次覆盖写入文件。

或者文件不大的话:可以直接获取整个内容,再替换。追问

额..初学PHP ...用了等号分割的方法..修改完之后 .然后不知道怎么整个写往回了.

追答

file_put_contents();
fwrite();
上面2个函数都可以。

相似回答