【发布时间】:2015-06-19 02:00:43
【问题描述】:
所以 如果我用 a+ 像打开一个文件
fopen($filepath,'a+');
file($filepath);
然后我使用 file($filepath) 获取文件内容就可以了
但是为什么我什么时候 我用flock锁定了文件我也可以使用file()函数获取内容 为什么 ?
$fp = fopen($filepath, "a+");
while (1) {
$f =flock($fp,LOCK_EX);
if($f){
fwrite($fp,'abc');
echo "ok loked \n";
sleep(1);
$te =file($filepath);
if(strlen($te[0])==10){
echo "this is cont ".$te[0]."\n";
echo "ok this the end \n";
ftruncate($fp,0);
fflush($fp);
}
flock($fp, LOCK_UN);
break;
}
}
fclose($fp);
他们的关系如何?
当flock文件file()函数使用fopen资源时?
文件是独立函数还是使用fopen?
【问题讨论】:
-
旁注:如果这不是伪代码,则
echo "ok loked "\n";中有语法错误。它抛弃了语法高亮。 -
@Fred-ii- 现在可以使用了
-
对不起,但我发现很难相信
echo "ok loked "\n";会引发解析错误。将错误报告添加到您的打开 PHP 标记之后的文件顶部,例如<?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,您会明白我的意思。 -
啊,你已经编辑了
echo "ok loked \n"; -
是的,flock 函数呢?