本文目录一览:
PHP将数据写入txt文件
//记录返回值
$write_data_a = [
'html_url' = $getUrl,
'ip' = $this-get_real_ip(),
'time' = date("Y-m-d H:i:s",time()),
'res' = $response
];
//转化为JSON
$write_data_a = json_encode($write_data_a) . '||' . "\n";
$date = date("Y-m-d", time());
//项目路径目录,判断是否存在,不存在则创建
$lujing = "./360_mobile_res_sd";
if(!is_dir($lujing)){
mkdir(iconv("UTF-8", "GBK", $lujing),0777,true);
}
//文件,判断是否存在,不存在则创建
$TxtFileName = "./360_mobile_res_sd/" . $date . "_2.txt";
//以读写方式打写指定文件,如果文件不存则创建
if(file_exists($TxtFileName))
{
//存在,追加写入内容
file_put_contents($TxtFileName, $write_data_a, FILE_APPEND);
}
else
{
//不存在,创建并写入
if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
exit();
}
if(!fwrite ($TxtRes,$write_data_a)){ //将信息写入文件
fclose($TxtRes);
exit();
}
fclose ($TxtRes); //关闭指针
}
PHP为什么追加内容,把原来a.txt里面的内容都替换掉了。怎样才能在a.txt文档里的后面追加内容。
这个地方是fopen函数的第二个参数(模式)的设置问题,其中主要有:
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'w'是替换,要追加需要改用'a'
PHP多进程同时追加写入TXT,导致之前的内容丢失。
多进程同时修改一个文件是很容易造成这样的情况,建议使用数据库来存储,编程就非常简单,锁可以细到记录级。
如果必须使用文件,一般的办法是读文件前判断是否存在临时文件,存在就放弃(或者等待),只有不存在临时文件才继续操作,继续操作的第一步是建立临时文件,修改文件,最后删除临时文件。