php数组、字符串写入php文件中,可以作为临时数据存储,以及配置文件内容更新等
内容写入文件,可以是数组、字符串、对象、json数据等,使用场景可以是配置文件,和临时数据缓存池,优点就是不依赖数据库,直接用文件作为存储池,缺点是写入错误数据不能恢复,如果每次写入前备份文件,但是效率不高,因为需要读写文件,所以根据项目情况是否运用,具体方法如下示例。
基本原理就是将内容拼接成字符串后根据指定的格式写入文件
需要写入的文件 data.php:
<?php
$siteConfig = array(
'ext' => array(
'http_path' => '',
'site_title' => '',
'site_desc' => '',
),
);
?>
调用示例demo.php
/**
* 调用示例
*/
$arr = array(
'http_path'=>'https://www.yj521.com',
'site_title'=>'越加网',
'site_desc'=>'分享编程'
);
$result = writeFile($arr);
if($result){
echo '写入成功';
}else{
echo '写入失败';
}
/**
* php数组写入文件方法
*/
function writeFile($param){
$path = './d.php';
$file = @fopen($path,"r"); // 打开文件
$fileTxt = @fread($file,filesize($path)); // 读取文件内容
@fclose($file); // 关闭打开的文件
$config = array('http_path','site_title','site_desc'); // 预定义文件数组键名
foreach($config as $v){
// 删除参数值里边的换行符
$paramVal = str_replace(array("\r\n","\n","\r"),'',$param[$v]);
// 根据表达式搜索替换字符串
$pattern = "/'".$v."' => '.*?',/";
$replacement = "'".$v."' => '".$paramVal."',";
$fileTxt = preg_replace($pattern, $replacement, $fileTxt);
}
$fileTemp = @fopen($path, "w"); // 打开文件
$result = @fwrite($fileTemp,$fileTxt); // 字符串写入文件
@fclose($fileTemp); // 关闭打开的文件
return $result ? true : false;
}
写入成功后的temp.php文件源码:
<?php
$siteConfig = array(
'ext' => array(
'http_path' => 'https://www.yj521.com',
'site_title' => '越加网',
'site_desc' => '分享编程',
),
);
?>