PHP文件操作详解

时间:2021-10-31 14:01:18

本文实例为大家分享了PHP文件操作的具体代码,供大家参考,具体内容如下

(1)文件读取

file_get_contents( )

实例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
// 文件部分 文件的读取
 
// 要求把a.txt的内容读取出来,赋值给str变量
 
/* file_get_contents()可以获取一个文件的内容或一个网络资源的内容
 
file_get_contents()是读取文件/读网络数据比较快捷的一个函数,帮我们封装了打开/关闭等操作
 
但是要小心,这个函数一次性把文件的内容读取出来,放内存里,因此工作中处理上百M的大文件,谨慎使用
*/
 
$file = 'a.txt';
$str = file_get_contents($file);
echo $str;
 
/*
$url = 'http://www.163.com/';
$str = file_get_contents($url);
file_put_contents('162.html', $str);
*/
// 读出来的内容,能否写入另一个文件里面
/*
file_put_contents() 这个函数用来把内容写入文件
也是一个快捷函数,帮我们封装打开写入关闭的细节
 
注:如果指定的文件不存在,则会自动创建
*/
file_put_contents('./b.txt', $str);
 
 
/*
最简单的爬网页程序
*/
$url = 'http://www.sina.com/';
$html = file_get_contents($url);
 
if (file_put_contents('sina.html', $html)) {
 echo "抓过来了";
}else{
 echo "抓错了";
}

(2)文件操作

fopen: 打开
fread : 读取
fwrite: 写入
fclose: 关闭

实例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
 
/*
 文件操作之
 fopen
 fread
 fwrite
 fclose
*/
 
 
/*
fopen() 打开一个文件,返回一个句柄资源
fopen($filename,mode);
第二个参数是‘模式',如只读模式,读写模式等
返回值:资源
*/
 
$file = './162.html';
$fh = fopen($file,'r');
 
// 沿着上面返回的$file这个资源通道来读文件
echo fread($fh,10),'<br />';
 
// 返回 int(0),说明没有成功写入
// 原因:在于第二个mode参数,选的r,即只读打开
var_dump(fwrite($fh, '测试一下,能不能用'));
 
// 关闭资源
fclose($fh);
 
 
/*
r+读写模式,并把指针指向文件头
写入成功
注:从文件头,写入时,覆盖相等字节的字符
*/
$fh = fopen($file, 'r+');
echo fwrite($fh, 'hello') ? 'success': 'fail','<br />';
fclose($fh);
 
 
/*
w:写入模式(fread读不了)
并把文件大小截为0
指针停于开头处
*/
echo '<br />';
$fh = fopen('./test.txt', 'w');
fclose($fh);
echo "ok!";

(3)文件是否存在、修改时间

filemtime

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 
/*
判断文件是否存在
获取文件的创建时间/修改时间
*/
 
$file = './students.txt';
if (file_exists($file)) {
 echo $file,"存在 <br />";
 echo '上次修改时间是:',date('Y-m-d,H:i:s',filemtime($file));
}else{
 echo "不存在";
}

Demo地址 : Demo6-file操作

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。