ホームページ > バックエンド開発 > PHPチュートリアル > PHPファイルのロック書き込み

PHPファイルのロック書き込み

巴扎黑
リリース: 2016-11-21 11:54:56
オリジナル
1475 人が閲覧しました

マルチスレッド書き込みに対応したPHPファイルの書き込み方法:

Phpコード

function file_write($file_name, $text, $mode='a', $timeout=30){  
    $handle = fopen($file_name, $mode);  
    while($timeout>0){  
        if ( flock($handle, LOCK_EX) ) {  
            $timeout--;  
            sleep(1);  
        }  
    }  
    if ( $timeout > 0 ){  
        fwrite($handle, $text.'\n');  
        flock($handle, LOCK_UN);  
        fclose($handle);  
        return true;  
    }  
    return false;  
}
ログイン後にコピー

flock(int $handle, int $operation) 関数で操作するハンドルは、開いているファイルポインタである必要があります。

operation は次の値のいずれかになります:

共有ロック (プログラムの読み取り) を取得するには、operation を LOCK_SH に設定します (PHP 4.0.1 より前のバージョンでは 1 に設定)。

排他ロックを取得するには(プログラムの書き込み)、operationをLOCK_EXに設定します(PHP 4.0.1より前のバージョンでは2に設定)。

ロック (共有または排他) を解放するには、操作を LOCK_UN に設定します (PHP 4.0.1 より前のバージョンでは 3 に設定)。

ロック時に flock() をブロックしたくない場合は、操作に LOCK_NB を追加します (PHP 4.0.1 より前のバージョンでは 4 に設定)。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート