php 修改、读本地ini配置文件

 admin   2017-11-12 16:50   831 人阅读  0 条评论

小玩意,大功能


function curl($curl){
	$c = curl_init();
	$url = $curl;
	curl_setopt($c, CURLOPT_URL, $url);
	curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
	$data = curl_exec($c);
	curl_close($c);
	return $data;
}
function ini_file($inifilename,$mODe=null,$key,$value=null) {
//传入参数为null时的默认值
$inifilename = $inifilename==null ? 'Application.ini':$inifilename;
$key = $key==null ? 'user' : $key;
if(!file_exists($inifilename))
return null;
//读取
$confarr = parse_ini_file($inifilename,true);
$newini="";
if($mODe!=null)
{
//节名不为空
if($value==null)
 {return @$confarr[$mode][$key]==null ? null : $confarr[$mode][$key];}
else
 {$YNedit = @$confarr[$mode][$key]==$value ? false : true;//若传入的值和原来的一样,则不更改
    @$confarr[$mode][$key]=$value;
  }
}
else
{//节名为空
 
if($value==null)
 {return @$confarr[$key]==null ? null : $confarr[$key];}
else
  {$YNedit = @$confarr[$key]==$value ? false : true;//若传入的值和原来的一样,则不更改
    @$confarr[$key]==$value;
    $newini=$newini.$key."=".$value."\r\n";
  }
 
}
if(!$YNedit)
return true;
 
//更改
 
$Mname=array_keys($confarr);
$JShu=0;
 
foreach ($confarr as $k => $v)
{
if(!is_array($v))
    {$newini=$newini.$Mname[$JShu]."=".$v."\r\n";$jshu += 1;}
else
{$newini=$newini.'['.$Mname[$jshu]."]\r\n";//节名
$jshu += 1;
$jieM=array_keys($v);
$jieS=0;
foreach ($v as $k2 => $v2)
 { $newini=$newini.$jieM[$jieS]."=".$v2."\r\n";$jieS += 1;}
}
           
}
    if ( ($fi = fopen($inifilename,"w")) )
    {
    flock($fi, LOCK_EX);//排它锁
    fwrite($fi, $newini);
    flock($fi, LOCK_UN);                        
    fclose($fi); 
    return true;                               
    }
return false;//写文件失败
}


发表评论:


表情

还没有留言,还不快点抢沙发?