当前位置:网站首页>PHP读取ini文件并修改内容写入
PHP读取ini文件并修改内容写入
2022-07-05 04:21:00 【Casual_1573】
读取ini文件并改写数据写入到ini
updateTime.ini
#更新时间记录
[fileUpdateTime]
time = ""
[sqlOtherUpdateTime]
time = "2022-06-08"
[sqlUpdateTime]
time = "2022-05-15"//方法一
function write_ini_file($array, $file) {
$res = array();
foreach($array as $key => $val) {
if(is_array($val)) {
$res[] = "[$key]";
foreach($val as $skey => $sval) {
$res[] = "$skey = ".(is_numeric($sval) ? $sval : '"'.$sval.'"');
}
} else {
$res[] = "$key = ".(is_numeric($val) ? $val : '"'.$val.'"');
}
}
safefilerewrite($file, implode("\r\n", $res));
}
function safefilerewrite($fileName, $dataToSave) {
if ($fp = fopen($fileName, 'w')) {
$startTime = microtime(TRUE);
do {
$canWrite = flock($fp, LOCK_EX);
if(!$canWrite) usleep(round(rand(0, 100)*1000));
} while ((!$canWrite)and((microtime(TRUE)-$startTime) < 5));
if ($canWrite) {
fwrite($fp, $dataToSave);
flock($fp, LOCK_UN);
}
fclose($fp);
}
}
$timeInfo = parse_ini_file('updateTime.ini',true);
$timeInfo['sqlOtherUpdateTime']['time'] = date("Y-m-d", time());
write_ini_file($timeInfo, "updateTime.ini");//方法二
function write_ini_file_tow($assoc_arr, $path, $has_sections=FALSE) {
$content = "";
if ($has_sections) {
foreach ($assoc_arr as $key=>$elem) {
$content .= "[".$key."]\n";
foreach ($elem as $key2=>$elem2) {
if(is_array($elem2))
{
for($i=0;$i<count($elem2);$i++)
{
$content .= $key2."[] = \"".$elem2[$i]."\"\n";
}
}
else if($elem2=="") $content .= $key2." = \n";
else $content .= $key2." = \"".$elem2."\"\n";
}
}
}
else {
foreach ($assoc_arr as $key=>$elem) {
if(is_array($elem))
{
for($i=0;$i<count($elem);$i++)
{
$content .= $key."[] = \"".$elem[$i]."\"\n";
}
}
else if($elem=="") $content .= $key." = \n";
else $content .= $key." = \"".$elem."\"\n";
}
}
if (!$handle = fopen($path, 'w')) {
return false;
}
$success = fwrite($handle, $content);
fclose($handle);
return $success;
}
$timeInfo = parse_ini_file('updateTime.ini',true);
$timeInfo['sqlOtherUpdateTime']['time'] = date("Y-m-d", time());
write_ini_file_tow($timeInfo, 'updateTime.ini', true);边栏推荐
- Looking back on 2021, looking forward to 2022 | a year between CSDN and me
- BDF application - topology sequence
- 函數(易錯)
- Is "golden nine and silver ten" the best time to find a job? Not necessarily
- Threejs Internet of things, 3D visualization of farms (I)
- [illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording
- 3. Package the bottom navigation tabbar
- [finebi] the process of making custom maps using finebi
- Rome链分析
- 电源管理总线 (PMBus)
猜你喜欢
随机推荐
A应用唤醒B应该快速方法
A real day for Beijing programmers!!!!!
Looking back on 2021, looking forward to 2022 | a year between CSDN and me
长度为n的入栈顺序的可能出栈顺序
mxnet导入报各种libcudart*.so、 libcuda*.so找不到
Number of possible stack order types of stack order with length n
假设检验——《概率论与数理统计》第八章学习笔记
[phantom engine UE] the difference between running and starting, and the analysis of common problems
Scheduling system of kubernetes cluster
User behavior collection platform
Threejs Internet of things, 3D visualization of farms (II)
Threejs rendering obj+mtl model source code, 3D factory model
【虚幻引擎UE】实现测绘三脚架展开动画制作
Differences among 10 addressing modes
Bit operation skills
Rust blockchain development - signature encryption and private key public key
小程序中实现文章的关注功能
Function (error prone)
Longyuan war "epidemic" 2021 network security competition web easyjaba
Threejs loads the city obj model, loads the character gltf model, and tweetjs realizes the movement of characters according to the planned route
![[phantom engine UE] the difference between running and starting, and the analysis of common problems](/img/e2/49d6c4777c12e9f4e3f8b6ca6db41c.png)







