1. 程式人生 > >PHP檔案寫入函式file_put_contents併發追加寫入丟失內容問題解決方法

PHP檔案寫入函式file_put_contents併發追加寫入丟失內容問題解決方法

在php開發的web專案中用file_put_contents函式FILE_APPEND追加檔案,由於多客戶併發訪問,所以經常出現內容缺失的問題。

出現這個種情況可以在寫入檔案的時候加一個LOCK_EX引數,這個引數LOCK_EX的意思就是寫檔案時,先鎖上這個檔案,這樣只允許某個客戶端訪問的時候寫,其他客戶端訪問不能“同時”寫了。

使用方法:

file_put_contents($file, $content, FILE_APPEND|LOCK_EX)

引數意義:

$file=>這個是寫入檔案的路徑+檔名

$content=>這個是寫入檔案的內容

FILE_APPEND=>直接在該檔案已有的內容後面追加內容

LOCK_EX=>寫檔案的時候先鎖定,防止多人同時寫入造成內容丟失

相關推薦

PHP檔案寫入函式file_put_contents併發追加寫入丟失內容問題解決方法

在php開發的web專案中用file_put_contents函式FILE_APPEND追加檔案,由於多客戶併發訪問,所以經常出現內容缺失的問題。 出現這個種情況可以在寫入檔案的時候加一個LOCK_EX引數,這個引數LOCK_EX的意思就是寫檔案時,先鎖上這個檔案,這樣只允

PHP中file_get_contents函式抓取https地址出錯的解決方法

在php中,抓取https的網站,提示如下的錯誤內容:Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyph

php 表單提交大量數據發生丟失解決方法

增加 google 100% lsp htm 默認 files 奇怪 ble 最近在項目中,出現一個奇怪的現象,有一個大form裏面有上千個input,提交的時候,老是發現post過來的數據不完整,一開始還懷疑是html 表單名稱有沖突,排除掉了。然後,網上找了一堆,php

php 檔案系統函式

1、basename ,dirname ,pathinfo和realpath basename(path) 返回路徑中的檔名部份,path表示路徑; dirname(path) 返回路徑中的目錄部份,path表示路徑; pathinfo(path,params) 返回檔案路徑資訊,path表示路徑,pa

php檔案操作函式

file_get_contents 獲取一個檔案或一個網路資源的內容,是比較快捷的函式,內部封閉了開啟/關閉操作 但是小心,此函式一次性把檔案內容全部讀出來,放記憶體裡. 工作中,處理大檔案時候.慎用此函式 不支援https協議,如需複製https網頁,請改用curl

簡單的-寫入txt文字,追加寫入與覆蓋寫入

/*** * Description:追加的寫入* @param pathName* @param content* @author diaowj:2016-4-21*/public static void writeFile(String pathName,String content){File file

html頁面匯入php檔案 使用include後多出一空白行的解決

網上找的方法  管用 用include引入的footer和header檔案都在上面多出一空白行,很是影響美觀。直接把被引入的檔案放入則沒問題。 後來一想,以前一直用Gb2312編碼,這次用的Utf-8,很可能跟這個有關。 很多都說可能是由於css padding設定等有關

關於JAVA往MYSQL寫入中文,SQLyog顯示為問號的解決方法

在hibernate.cfg.xml檔案中原始碼:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate C

PHP提示Cannot modify header information - headers already sent by解決方法

PHP提示Cannot modify header information - headers already sent by解決方法 因為 header();傳送頭之前不能有任何輸出,空格也不行, 需要將header()之前的空格去掉,或者其他輸出的東西去掉, 如果他上面include其他檔案了,你還

python os.path.rename()報“[WinError 17] 系統無法將檔案移到不同的磁碟驅動器”問題的解決方法

遇到問題 python用rename跨磁碟移動檔案的時候報錯。 [WinError 17] 系統無法將檔案移到不同的磁碟驅動器 解決方法 改用shutil庫 import shutil # 移動檔案(目錄)和rename用法一樣。 shutil.move(

TortoiseSVN/TortoiseGIT檔案和資料夾或圖示不顯示問題解決方法

    最近發現自己電腦上的TortoiseGIT圖示不顯示,在網上查了些方法,試過之後都不行,最終是需要在TortoiseGIT下的setting中做相關的設定才可以正常顯示,在這裡做一個簡單的記錄,以供參考。 步驟如下:     1. 開

遇到表明“Office 已檢測到此檔案存在問題。編輯此檔案可能會損害您的計算機。“的解決方法

您可以在“檔案中檢測到的問題”中瞭解有關檔案驗證失敗的詳細資訊。 檔案是使用“在受保護的檢視中開啟”選項開啟的。     如果您在“受保護的檢視”中遇到表明“此檔案已在受保護的檢視中開啟。請單擊檢視詳細資訊。”的訊息,這是因為您選擇在“受保護的檢視”中開啟檔案。可通過使用“在受保護的檢視中開啟”選項來執行

mysql匯入較大sql檔案,出現MySQL server has gone away的解決方法

問題描述:工作需要檢視備份資料,故將mysql資料庫的定時備份資料匯入到mysql中,出現如下圖所示問題。 使用命令執行: mysql> use auction-oa Database changed mysql&g

什麼是分散式檔案系統?分散式檔案系統的原理、出現的問題與解決方法

本地檔案系統如ext3,reiserfs等(這裡不討論基於記憶體的檔案系統),它們管理本地的磁碟儲存資源、提供檔案到儲存位置的對映,並抽象出一套檔案訪問介面供使用者使用。但隨著網際網路企業的高速發展,這些企業對資料儲存的要求越來越高,而且模式各異,如淘寶主站的大量商品圖片,其

併發,大流量處理及解決方法

第一:確認伺服器硬體是否足夠支援當前的流量。 普通的P4伺服器一般最多能支援每天10萬獨立IP,如果訪問量比這個還要大,那麼必須首先配置一臺更高效能的專用伺服器才能解決問題,否則怎麼優化都不可能徹底解決效能問題。 第二:優化資料庫訪問  前臺實現完全的靜態化當然最好,可以完全

FFmpeg 錯誤 C4996: "avcodec_alloc_frame"或者"av_free_packet"等函式被宣告為已否決的解決方法

1 error C4996: "avcodec_alloc_frame"被宣告為已否決 在 Visual Studio 2013 下編寫 FFmpeg 程式時出錯,錯誤如下: 出錯程式碼如下: 解決方法為: 將 avcodec_alloc_frame() 替換為 av_

java httpclient檔案上傳,springmvc作為伺服器端接收檔案,以及上傳中檔名亂碼的解決方法

最近由於專案中需要一個檔案上傳(基於http)的功能,遇到一些問題,故寫此部落格防止後面遺忘。 檔案上傳功能需要一個客戶端,一個伺服器端,由於客戶端不是在前臺(jsp,html)觸發,而是在java中進行請求,於是採用的org.apache.commons.

併發修改異常原理與解決方法

什麼是併發修改異常: 當我們在遍歷實現了collection介面與iterator介面的集合時(List、Set、Map), 我們可以通過遍歷索引也可以通過迭代器進行遍歷。在我們使用迭代器進行遍歷集合的時候,會獲取到當前集合的迭代物件。在裡面有封裝了迭代器的remove方法

loadrunner錄製IE11指令碼併發有相容性問題的解決方法

loadrunner11不支援IE11,而loadrunner12永久免費試用50個虛擬使用者併發但是不能x(破)x(解)。 說說我的解決辦法: 1.50虛擬使用者以內用LR12別猶豫,LR12錄製

下載的檔案需要右鍵屬性解除鎖定的一次性解決方法

解決方法1: Win+R 彈出執行,輸入 gpedit.msc 進入組策略編輯器,依次展開 使用者配置 - 管理模板 - Windows 元件 - 附件管理器 - 檔案附件中不保留區域資訊。 將其設定為已啟用即可。如需恢復,修改為未配置或已禁用…… 解