php使用多個進程同時控制文件讀寫示例
<?php
/**
* 寫入數(shù)據(jù)
* @param [string] $path [文件路徑]
* @param [string] $mode [文件打開模式]
* @param [string] $data [數(shù)據(jù)]
* @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."\r\n");
flock($fp, LOCK_UN);
fclose($fp);
return true;
}
/**
* 讀數(shù)據(jù)
* @param [string] $path [文件路徑]
* @param [string] $mode [文件打開模式]
* @return string
*/
function readData($path,$mode){
$fp = fopen($path, $mode);
$retries = 0;
$max_retries = 100;
do {
if ($retries > 0) {
usleep(rand(1, 10000));
}
$retries += 1;
}while (!flock($fp, 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+');
- php計劃任務之ignore_user_abort函數(shù)實現(xiàn)方法
- php定時計劃任務與fsockopen持續(xù)進程實例
- win7計劃任務定時執(zhí)行PHP腳本設置圖解
- Windows中使用計劃任務自動執(zhí)行PHP程序實例
- php定時計劃任務的實現(xiàn)方法詳解
- php中定時計劃任務的實現(xiàn)原理
- php 計劃任務 檢測用戶連接狀態(tài)
- PHP定時執(zhí)行計劃任務的多種方法小結
- PHP計劃任務、定時執(zhí)行任務的實現(xiàn)代碼
- PHP將進程作為守護進程的方法
- PHP的pcntl多進程用法實例
- PHP守護進程實例
- php計劃任務之驗證是否有多個進程調用同一個job的方法
相關文章
Codeigniter控制器controller繼承問題實例分析
這篇文章主要介紹了Codeigniter控制器controller繼承問題,以簡單實例形式分析了CodeIgniter中針對控制器controller繼承的實現(xiàn)與使用方法,需要的朋友可以參考下2016-01-01
laravel框架中間件 except 和 only 的用法示例
這篇文章主要介紹了laravel框架中間件 except 和 only 的用法,簡單說明了中間件 except 和 only的功能,并結合實例形式分析了laravel框架中間件 except 和 only 相關使用技巧,需要的朋友可以參考下2019-07-07

