一個較為安全的覆寫檔案函數

來源:互聯網
上載者:User
安全|函數

<?php
// 安全覆蓋檔案寫入,防止寫入失敗檔案丟失,如果您的代碼中有以"w"模式寫入檔案的代碼
// 推薦改用 f_xwrite() 的方式寫入.
// $Id: f_xwrite.php,v 1.2 2004/12/03 05:27:04 hightman Exp $

function f_xwrite($fpath, $buf, $length = -1) {
    $ret = 0;
   
    if ($length < 0) $length = strlen($buf);
    if ($length == 0) {
        @unlink($fpath);
         return 1;
    }
   
    $fd = @fopen($fpath, "r+");
    if (!$fd) $fd = @fopen($fpath, "w");
    if (!$fd) return $ret;

    flock($fd, LOCK_EX);
    fseek($fd, 0, SEEK_SET);
    if (fwrite($fd, $buf, $length)) {
        ftruncate($fd, $length);
        $ret = 1;
    }
    flock($fd, LOCK_UN);
    fclose($fd);
    return $ret;
}
?>



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。