加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php使用多个进程同时控制文件读写示例

发布时间:2020-12-12 20:04:51 所属栏目:PHP教程 来源:网络整理
导读:代码如下: /** * 写入数据 * @param [string] $path [文件路径] * @param [string] $mode [文件打开模式] * @param [string] $data [数据] * @return [bool] */ function writeData($path,$mode,$data){ $fp = fopen($path,$mode); $retries = 0; $max_retri

代码如下:
/**
* 写入数据
* @param [string] $path [文件路径]
* @param [string] $mode [文件打开模式]
* @param [string] $data [数据]
* @return [bool]
*/
function writeData($path,$mode,$data){
$fp = fopen($path,$mode);
$retries = 0;
$max_retries = 100;
do {
if ($retries > 0) {
usleep(rand(1,10000));
}
$retries += 1;
}while (!flock($fp,LOCK_EX) and $retries <= $max_retries);
if ($retries == $max_retries) {
return false;
}
fwrite($fp,$data."rn");
flock($fp,LOCK_UN);
fclose($fp);
return true;
}


/**
* 读数据
* @param [string] $path [文件路径]
* @param [string] $mode [文件打开模式]
* @return string
*/
function readData($path,$mode){
$fp = fopen($path,LOCK_SH) and $retries <= $max_retries);
if ($retries == $max_retries) {
return false;
}
$contents = "";
while (!feof($fp)) {
$contents .= fread($fp,8192);
}
flock($fp,LOCK_UN);
fclose($fp);
return $contents;
}

writeData('D:/webServer/demo.txt','a+','this is a demo');
echo readData('D:/webServer','r+');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读