php开发之文件指针,文件锁定

(1) rewind() 函数
该函数将文件handle的指针设为文件流的开头,语法如下:
bool rewind(resource handle)
技术分享
(2)fseek() 函数
fseek()函数实现文件指针的定位,语法如下:
int fseek(resource handle,int offset[,int whence])
handle 参数为要打开的文件
offset为指针位置或者相对whence的参数的偏移量,可以是负值。
whence 包括以下三种:
a,SEEK_SET,位置等于offset字节。
b, SEEK_CUR,位置等于当前位置加上offset偏移量。
c, SEEK_END,位置等于文件结尾加上offset偏移量。
如果忽略 whence参数,系统默认为SEEK_SET。

(3) feof()函数
该函数用来判断文件指针是否是在文件尾,语法格式如下:
bool feof(resource hanlde)
如果文件指针到了文件尾,就返回true,否则返回false

(4) ftell()函数
ftell()函数用来返回当前指针的位置,语法格式如下:
int ftell(resource handle)

示例代码如下:


<?php

$filename ="1.txt";
if (is_file($filename)) {
    echo "文件总字节数:".filesize($filename)."<br>";
    $handle =fopen($filename, "rb");
    echo "指针的初始位置尾:".ftell($handle)."<br>";
    fseek($handle, 25);         //移动指针位置
    echo "使用fseek()函数后指针的位置:".ftell($handle)."<br>";
    echo "输出当前指针后面的内容:".fgets($handle)."<br>";
    if (feof($handle)) {
        echo "当前指针指向文件末尾".ftell($handle)."<br>";
    }
    else{
        echo "当前指针没有志向末尾:".ftell($handle)."<br>";
    }
    rewind($handle);
    echo "使用rewind()函数后当前指针指向位置:".ftell($handle)."<br>";
    echo "输出25个字节后的内容:".fgets($handle,25)."<br>";
    fclose($handle);

}else{
    echo "文件不存在";
}

?>

运行结果如下:
技术分享

2,文件锁定

在一个文件进行写入操作时,需要先锁定该文件,以防止其他用户同时修改此文件。在php中,文件的锁定使用flock()函数来实现的。语法如下:
bool flock(int handle,int operation)
handle为一个已经打开的文件指针,operation的参数如下表:
技术分享

锁定,写入,解锁关闭文件的示例代码如下:


<?php

$filename ="1.txt";
$handle =fopen($filename, "w");
flock($handle, LOCK_EX);
$str ="MMMMMMMMMMMMMMMMMMMMM";
fwrite($handle, $str);
flock($handle, LOCK_UN);
fclose($handle);
readfile($filename);


?>

运行结果如下:
技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。