码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-04-07 17:46:13      阅读:163      评论:0      收藏:0      [点我收藏+]

标签: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);


?>

运行结果如下:
技术分享

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

标签:php   文件指针   锁定文件   

原文地址:http://blog.csdn.net/hanhailong18/article/details/44920513

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!