天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php 多線程上下文中安全寫文件實(shí)現(xiàn)代碼

復(fù)制代碼 代碼如下:
<?php
/**
* @usage: used to offer safe file write operation in multiple threads context, arbitory file type
* @author: Rocky Zhang
* @time: Nov. 11 2009
* @demo[0]: $handler = mfopen($file, 'a+');
* mfwrite($handler, $str);
*/
function mfopen($file, $mode='w+') {
$tempfile = generateTempfile('./tempdir', $file);
preg_match('/b/i', $mode) || ($mode .= 'b'); // 'b' is recommended
if (preg_match('//w|a/i', $mode) && !is_writable($file)) {
exit("{$file} is not writable!");
}
$filemtime = $filemtime2 = 0;
$tempdir = dirname($tempfile);
is_dir($tempdir) || mkdir($tempdir, 0777);
do { // do-while used to avoid modify in a long time copy
clearstatcache();
$filemtime = filemtime($file);
copy($file, $tempfile);
$filemtime2 = filemtime($file);
} while ( ($filemtime2 - $filemtime) != 0 );
if (!$handler = fopen($tempfile, $mode)) {
exit('Fail on opening tempfile, write authentication is must on temporary dir!');
}
return array(0=>$handler, 1=>$filemtime, 2=>$file, 3=>$tempfile, 4=>$mode);
}

// I do think that this function should be optimized further
function mfwrite(&$handler, $str='') {
if (strlen($str) > 0) {
$num = fwrite($handler[0], $str);
fflush($handler[0]);
}
clearstatcache();
$mtime = filemtime($handler[2]);
if ( $mtime == $handler[1] ) { // compare between source file and temporary file
if ( $num && $num > 0 ) { // temporary file has been updated, copy to source file
copy($handler[3], $handler[2]) || exit;
$handler[1] = filemtime($handler[3]);
touch($handler[2], $handler[1], $handler[1]);
}
} else { // source file has been modified, load source file to temporary file
copy($handler[2], $handler[3]) || exit;
touch($handler[3], $mtime, $mtime);
$handler[1] = $mtime;
}
}

function generateTempfile($tempdir='tempdir', $file) {
$rand = md5(microtime());
return "{$tempdir}/{$rand}_".$file;
}
?>

php技術(shù)php 多線程上下文中安全寫文件實(shí)現(xiàn)代碼,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 丰满大屁俄罗斯肥女 | 小sao货水好多真紧h的视频 | 日韩精品无码免费专区 | 国产亚洲精品第一区香蕉 | 亚洲 日韩 欧美 另类 蜜桃 | 理论片午午伦夜理片I | 仓井空torrent| 国产精品久久久久久无码专区 | 久久精品亚洲牛牛影视 | 午夜噜噜噜私人影院在线播放 | 黑人特黄AA完整性大片 | 国产在线高清视频无码不卡 | 被吊起玩弄的女性奴 | 美国特级成人毛片 | 又黄又湿免费高清视频 | 99国内精精品久久久久久婷婷 | 天天操天天干天天爽 | 国产AV综合手机在线观看 | 国产精品久久久久久亚洲毛片 | 2020无码最新国产在线观看 | 午夜AV亚洲一码二中文字幕青青 | 99久久99久久久精品齐齐鬼色 | 无人区日本电影在线观看 | 久久香蕉国产线看观看首页 | 日韩精品一区二区三区AV在线观看 | 国产精品爽爽久久久久久蜜桃 | xiao776唯美清纯| 国产午夜一区二区三区免费视频 | 亚洲人成网站7777视频 | 国产精品女上位好爽在线短片 | 中文字幕欧美一区 | 亚洲精品乱码久久久久久v 亚洲精品乱码电影在线观看 | 熟女人妻AV五十路六十路 | 久久视频这里只精品99热在线观看 | 漂亮的保姆5电影免费观看完整版中文 | 波野结衣qvod| 精品国产免费观看久久久 | 亚洲 日本 中文字幕 制服 | 24小时日本高清免费看 | 草草久久久亚洲AV成人片 | 色聚网久久综合 |