现在有一个日志文件夹,我需要把这个文件夹下的所有txt里面的内容解析出来并存入数据库
每个文件夹内都是1W条这种json字符串
//读取文件夹
public function read_file(){
header("content-type:text/html;charset=utf-8");
// 获取文件夹中的所有txt文件名
$dir = "rizhi/"; //这里输入其他路径
$handle = opendir($dir.".");
$row = array();
while (false!=($file=readdir($handle)))
{
if($file!="."&&$file!="..")
{
$row[]['name'] = $file;//输出文件名
}
}
$files = [];
foreach ($row as $k => $v) {
$files[] = $row[$k]['name'];
}
//$files是该文件夹下所有txt文件的名字
foreach ($files as $k => $v) {
$this->read_txt($files[$k]);//这里循环读取每一个txt文件内的内容并做数据库处理
}
closedir($handle);
exit;
}
//读取txt文件
protected function read_txt($file_name){
header("content-type:text/html;charset=utf-8");
$file = 'rizhi/'.$file_name;
###判断该文件是否存在
if(file_exists($file)){
$file_arr = file($file); ###得到数组
$arr_new = array();
####对数组的处理
foreach($file_arr as $v){
$a = trim($v);
$a = str_replace("\r\n","",$a);
$a = str_replace("\r","",$a);
$a = str_replace("\n","",$a);
$arr_new[] = $a;
}
foreach ($arr_new as $k => $v) {
$arr_new[$k] = json_decode($arr_new[$k]);
}
//$arr_new 就是我所需要的二维数组,可以循环存进数据库啦。
}else{
echo "文件不存在";
}
}