PHP常用文件操作

将数据读或写入文件,基本分为以下三个步骤:

  1. 打开文件(如果文件存在)
  2. 读/写文件
  3. 关闭文件
<?php
    //获得站点的相对路径
    $root = $_SERVER['DOCUMENT_ROOT'];

    //判断文件是否存在
    if (!file_exists("$root/order.txt")){
        echo "文件不存在。";
        exit();
    }

    //打开文件
    @$fp = fopen("$root/order.txt","ab");

    flock($fp, LOCK_EX);
    if (!$fp){
        echo "文件打开失败。";
        exit();
    }

    echo "文件打开成功.";

    $output = "向文件写入内容.";

    //写入文件
    fwrite($fp, $output,strlen($output));
    flock($fp, LOCK_UN);

    //关闭文件
    fclose($fp);
?>
打开文件:fopen(“文件名”,”模式”);
模式说明
r只读,将文件指针指向文件头。
r+读/写,将文件指针指向文件头。
w只写,打开并清空文件的内容。如果文件不存在,则创建文件。指向文件头。
w+读/写,打开并清空文件的内容。如果文件不存在,则创建文件。指向文件头
a追加,打开并向文件的末端进行写操作。如果文件不存在,则创建新文件。
a+读/追加,通过向文件末端写内容,来保持文件内容。
x创建新文件为只写。返回 FALSE 和错误,如果文件已存在。
x+创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。
关闭文件:fclose();
<?php
$myfile = fopen("test.txt", "r");
// some code to be executed....
fclose($myfile);
?>
检测是否已达到文件的末端:feof()

用于遍历未知长度的数据很方便。

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单行直到 end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>
逐行读取文件:fgets()
<?php
$file=fopen("test.txt","r");  
while(!feof($file)){  
    echo fgets($file)."< br/>";  
}  
fclose($file); 
?>
逐字符读取文件:fgetc()

fgetc() 函数用于从文件中读取单个字符。

<?php
$myfile = fopen("test.txt", "r") or die("Unable to open file!");
// 输出单字符直到 end-of-file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>
读取任意二进制数据:fread()
  • fread() 函数读取打开的文件。
  • fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

    fread($myfile,filesize("webdictionary.txt"));
写入文件和权限判断
函数说明
fwrite()函数执行文件写入
is_readable()判断文件是否可读
is_writeable()判断文件是否可写
is_writable()判断文件是否可写
file_exists()是否存在这个文件
访问目录

目录访问建议使用前向斜线”/”,兼容windows和unix系统。主要函数包括:

函数说明
basename()返回不包括路径信息的文件名
dirname()返回文件名的目录部分
realpath()接受相对路径,返回文件的绝对路径
pathinfo()提取给定路径的目录名,基本文件名和扩展名
opendir()打开目录,返回资源句柄
readdir()读取目录项
rewinddir()将读取指针返回开头
closedir()关闭读取句柄
chdir()改变当前脚本执行期间的当前工作目录
mkdir()创建目录
rmdir()删除目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值