Author: 刘老师(Aaron Lau)
武汉长乐教育,武汉PHP培训课程,版权所有,转载请注明!
PHP中文件的基本操作
课程概要
打开
写入
关闭
文件
- 读取文件内容
- 文件的复制/删除/重命名/截取
1. 打开
写入
关闭
文件
//声明一个变量用来保存文件名
$fileName="data.txt";
//使用fopen()函数以只写的模式打开文件,如果不存在则创建它,打开失败则通过程序
$handle = fopen($fileName, 'w') or die('打开<b>'.$fileName.'</b>文件失败!!');
//循环10次写入10行数据到文件中
for($row=0; $row<10; $row++) {
//写入文件
fwrite($handle, $row.": www.whphp.com\n");
}
//关闭由fopen()打开的文件指针资源
fclose($handle);
第二种方法
//声明一个变量用来保存文件名
$fileName="data.txt";
//声明一个变量用来保存被写入文件中的数据
$data="共10行数据\n";
//使用循环形成10行数据
for($row=0; $row<10; $row++) {
//将10数据都存放到一个字符串变量中
$data.=$row.": www.whphp.com\n";
}
//一次将所有数据写入到指定的文件中
file_put_contents($fileName, $data);
2. 读取文件内容
/*1. 从文件中读取指定字节数的内容存入到一个变量中*/
//将本地文件名保存在变量中
$filename = "data.txt";
//以只读的方式打开文件,返回文件资源
$handle = fopen($filename, "r") or die("文件打开失败");
//从文件中读取前100个字节
$contents = fread($handle, 100);
//关闭文件资源
fclose($handle);
//将从文件中读取的内容输出
echo $contents;
/*2. 从文件中读取全部内容存入到一个变量中,每次读取一部分,循环读取*/
//将二进制文件的文件名保存在变量中
$filename="c:\\files\\somepic.gif";
//以只读的方式打开文件,模式加了’b’
$handle = fopen ($filename, "rb") or die("文件打开失败");
//声明一个用于保存全部文件内容的字符串
$contents = "";
//循环读取文件中内容,使用feof()判断文件结尾
while (!feof($handle)) {
//每次读取1024个字节
$contents .= fread($handle, 1024);
}
//关闭文件资源
fclose($handle);
//将从文件中读取的全部内容输出
echo $contents;
/*3. 另一种从文件中读取全部内容的方法*/
//将本地文件名保存在变量中
$filename = "data.txt";
//以只读的方式打开文件,返回文件资源
$handle = fopen($filename, "r") or die("文件打开失败");
//使用filesize()函数获取文件长度,一起读出
$contents = fread($handle, filesize ($filename));
//关闭文件资源
fclose($handle);
//将从文件中读取的全部内容输出
echo $contents;
/*4. 依次行全部读出*/
echo file_get_contents("data.txt");
/* 读取每一行, 存入数组*/
$arr = file("data.txt");
/*读取文件并立即输出*/
readfile("data.txt");
3. 文件的复制/删除/重命名/截取
//复制文件示例
if(copy('./file1.txt', '../data/file2.txt')) {
echo "文件复制成功!";
}else{
echo "文件复制失败!";
}
//删除文件示例
$filename="file1.txt";
if(file_exists($filename)){
if(unlink($filename)) {
echo "文件删除成功!";
}else{
echo "文件删除失败!";
}
}else{
echo "目标文件不存在";
}
//重命名文件示例
if(rename('./demo.php', './demo.html')) {
echo "文件重命名成功!";
}else{
echo "文件重命名失败";
}
//截取文件示例
$fp=fopen('./data.txt', "r+") or die('文件打开失败');
if(ftruncate($fp, 1024)) {
echo "文件截取成功!";
}else{
echo "文件截取失败!";
}