目录
文件读写的内容都是字符串数据格式
readfile();? //读取文件内容,并返回文件的长度
file_get_contents('文件路径'); //读取文件。支持本地文件和远程文件url
file_put_contents('文件路径', '内容');? //写入数据,保存文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //没有文件会自动创建
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??//每次写入新数据都会清空原文件数据
?1)file_put_contents('文件路径', '内容');
<?php
header("Content-Type: text/html; charset=utf-8");
$a = file_put_contents('1.txt','hello word');
echo $a.'<br>';
$b = file_put_contents('1.txt','this is a test');//覆盖原本的内容
echo $b.'<br>';
?>
?2)使用readfile() 读取1.txt 文件,直接打印,不需要echo
<?php
header("Content-Type: text/html; charset=utf-8");
$a = readfile('1.txt');
?>
?
?3)file_get_contents,读取文件内容,需要 echo 打印
<?php
header("Content-Type: text/html; charset=utf-8");
$a = file_get_contents('1.txt');
echo $a.'<br>';
?>
?
?也可以读取网页内容,直接请求https的网址会报错,休要修改配置,1.windows下的PHP,只需要到php.ini中把 extension=php_openssl.dll前面的;删掉,重启服务就可以了。2.linux下的PHP,就必须安装 openssl模块,安装好了以后就可以访问了。
<?php
header("Content-Type: text/html; charset=utf-8");
//读取网页一张图片
$b = file_get_contents('https://img-home.csdnimg.cn/images/20210114022819.png');
//将读取的图片保存到 b.png 中
file_put_contents('b.png',$b);
?>
?
模式 | 说明 | |
r
|
只读方式打开,将文件指针指向文件头。
| |
r+
|
读写方式打开,将文件指针指向文件头。
| |
w
|
写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建。
| |
w+
|
读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建
| |
a
|
写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建 ,称之为追加。
| |
a+ |
读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
| |
x | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 。? | |
x+ | 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 |
使用fgets()读取文件内容的话,他会自己记录读取到哪一行了,如果总共要读取五行,在中间来个 fclose(),会导致后面的读取中断而出错?
<?php
header("Content-Type: text/html; charset=utf-8");
$a = fopen('1.txt','r'); //只读打开
//$b = fread($a, 10); //以字节长度读取文件;
$b = fgets($a);//读取一行
echo $b.'<br>';
$b = fgets($a);//读取第二行
echo $b.'<br>';
$b = fgets($a);//读取第三行
echo $b.'<br>';
?>
?fwrite 写,
$a = fopen(1.txt, r+);
$b = fwrite($a,'you is');
fclose 关闭