本文目錄一覽:
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,導致之前的內容丟失。
多進程同時修改一個文件是很容易造成這樣的情況,建議使用數據庫來存儲,編程就非常簡單,鎖可以細到記錄級。
如果必須使用文件,一般的辦法是讀文件前判斷是否存在臨時文件,存在就放棄(或者等待),只有不存在臨時文件才繼續操作,繼續操作的第一步是建立臨時文件,修改文件,最後刪除臨時文件。
原創文章,作者:CMDA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147825.html