Demo7.php
<?php
//第一种写法
//rn 可以让文本文件换行
$fp = fopen('file.txt','a');
$outString = "阅谁问君诵,rn水落清香浮。rn";
fwrite($fp,$outString,strlen($outString));
fclose($fp);
//第二种写法
// file_put_contents('file2.txt','阅谁问君诵,rn水落清香浮。');
?>
Demo8.php
<?php
//现在要读出文件
$fp = fopen('file.txt','r');
//fgetc -- 从文件指针中读取字符
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp); //阅谁
//fgets -- 从文件指针中读取一行
//fread() 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。
//echo fgets($fp,20);
//可以过滤HTML
//echo fgetss($fp,20);
//echo fread($fp,2);
//fread() 从 handle 指向的文件中读取最多 length 个字节数
//echo fread($fp,30);
//fpassthru -- 输出文件指针处的所有剩余数据
//fpassthru 本身还包含了向浏览器输出的功能,所以不需要 echo
echo fpassthru($fp);
fclose($fp);
?>
Demo9.php
<?php
//file -- 把整个文件读入一个数组中
//file 是按照每行来分组存放在一个数组中
//print_r(file('file.txt'));
//而这个打印出的是文件中的第二行。
// $array_file = file('file.txt');
// echo $array_file[4];
//readfile -- 输出一个文件
//readfile 是将整个文件读出来,readfile 本身能够直接输入浏览器,所以不需要 echo
//返回值是文件字节的总长度
//echo readfile('file.txt');
//file_get_contents -- 将整个文件读入一个字符串
//file_get_contents 可以读入数据到缓冲区,然后通过 echo 来打印
echo file_get_contents('file.txt');
?>
Demo10.php
<?php
//现在要读出文件
$fp = fopen('file.txt','r');
//feof -- 测试文件指针是否到了文件结束的位置
while (!feof($fp)){
echo fgetc($fp);
}
fclose($fp);
?>
Demo11.php
<?php
//比如读取一个文件的时候,你必须保证这个文件一定要存在,才可以操作
//否则就报错,不让执行
//这个时候就有必须做一个检测
//file_exists -- 检查文件或目录是否存在
if(file_exists('file.txt')){
echo '执行各种各样的文本读写操作!';
}else{
echo '此本文不存在,请管理员在后台重新生成一下。';
}
?>
Demo12.php
<?php
//文本大小,字节
//echo filesize('file.txt');
//删除一个文件
//unlink('a.txt');
//rewind -- 倒回文件指针的位置
//ftell -- 返回文件指针读/写的位置
//rewind -- 倒回文件指针的位置
//a 表示可以追加,b 表示二进制,这样可移植性好
//w
$fp = fopen('file.txt','ab');
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// echo fgetc($fp);
// rewind($fp);
// echo ftell($fp);
// fseek($fp,20);
// echo ftell($fp);
// echo fgetc($fp);
// echo fgetc($fp);
flock($fp,LOCK_EX);//锁定
fwrite($fp,'This is lock!');
flock($fp,LOCK_UN);//解锁
fclose($fp);
?>







