0
正如你可以在下面的代碼中看到的,我想用羊羣,以防止其他客戶接取的PHP(實際上有多個用戶接取此類似10每秒一次,每一個),因爲我發現在這裏搜索......但這是行不通的。我的data.txt每次都會變得空白。PHP鎖文件,而閱讀 - 羊羣()使我的檔案空白
<?php
$fileName = $_GET["room"]."/data.txt";
function replaceLine($data){
if (stristr($data, $_GET["player"])){
return $_GET["player"]." ".$_GET["data"]."\n";
}
return $data;
}
$file = fopen($fileName,"r");
if (flock($file, LOCK_EX)){
//ftruncate($file, 0);
///--------------
$data = file($fileName);
$data = array_map("replaceLine", $data);
file_put_contents($fileName, implode('', $data));
echo fread($file, filesize($fileName)+1);
///--------------
fflush($file);
flock($file, LOCK_UN);
} else {
echo "wait";
}
fclose($file);
?>
這是原來的代碼(即我試圖修改以避免使文件爲空):(它的工作原理是我想要的,但有這個文件的問題...)
<?php
$fileName = $_GET["room"]."/data.txt";
function replaceLine($data){
if (stristr($data, $_GET["player"])){
return $_GET["player"]." ".$_GET["data"]."\n";
}
return $data;
}
$data = file($fileName);
$data = array_map("replaceLine", $data);
file_put_contents($fileName, implode('', $data));
$file = fopen($fileName,"r");
echo fread($file, filesize($fileName)+1);
fclose($file);
?>
對不起,問這個新手的問題,但我沒有想法如何解決這一問題,我搜索和幾個星期嘗試不同的東西!謝謝!
你證實,$的數據是不是空的? –