将数据读或写入文件,基本分为以下三个步骤:
- 打开文件(如果文件存在)
- 读/写文件
- 关闭文件
<?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() | 删除目录 |