ホームページ > php教程 > php手册 > PHP ファイルの読み取りと書き込みのロックに関する注意事項

PHP ファイルの読み取りと書き込みのロックに関する注意事項

WBOY
リリース: 2016-06-21 09:07:09
オリジナル
1102 人が閲覧しました

テキストモードはファイルロックの失敗やその他の厄介な問題を起こしやすいと言われています

実際には無効ではありませんが、書き込みが間違っています

locked_exでファイルを開いた場合。読み取りモードでは、空のコンテンツが読み取られます!!!

無判断で操作してから書き込むと、エラーが発生します....

ここで多くの問題が発生します。さらに何か追加します

ファイルが書き込みモードで開かれてから flock(..LOCK_EX) された場合、この時点でそれを開く別のプログラムがあり、さらに flock(LOCK_EX) した場合、これは間違いなく間違っています。

2番目のfopenはファイルなので、サイズが0に切り捨てられている可能性があります..

-------------テストをしてみましょう----------- ---

テストプログラム1. :::: 1.php

$fd = fopen("./test.txt", "w");

flock($fd, LOCK_EX);

sleep(10);

fwrite($ fd, "hightman");

flock($fd, LOCK_UN);

fclose($fd);
?>

テストプログラム2. ::::: 2.php
$fd = fopen("./test.txt", "r");
echo fread($fd, 512);
fclose($fd);
?>

テスト プログラム 3 : ::::: 3.php

if ($fd = @fopen("./test.txt", "r+")) {
flock($fd, LOCK_EX);
fseek($fd) , 0, SEEK_END);
fwrite( $fd, "shit");
flock($fd, LOCK_UN);
‐ 1. php を実行する 2.php を実行する 2.php の出力結果は空です 2: 1.php を実行し、すぐに 3.php を実行します。1.php が完了するまで 3.php は終了しません。 ️ 「

だから書くときは特に注意してください
「w」、「r+」、「a」、「a+」はファイル長が0の時の状況に注意してください!ファイルは空であるか、フロックされている可能性があります






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