本文实例总结了PHP目录与文件操作技巧。分享给大家供大家参考,具体如下:
Demo1.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
//将一个路径赋给一个变量
//它目前来说,只是一个字符串,字符串表示的是一个目录的路径
//文件名包含,文件的名称 + 文件的扩展名(就是.后面的文件类型)
//文件的扩展名说白了就是文件后缀
$path = 'C:\AppServ\www\Basic6\Demo1.php' ;
// echo basename($path);
// echo '<br/>';
// //dirname -- 返回路径中的目录部分
// //dirname 返回路径的目录部分
// echo dirname($path);
// echo '<br/>';
// //获取路径文件的信息
// print_r(pathinfo($path));
$array_path = pathinfo ( $path );
echo $array_path [ 'dirname' ]; //这个打印出的目录 C:\AppServ\www\Basic6
echo $array_path [ 'basename' ]; //这个打印出的是文件名 Demo1.php
?>
|
Demo2.php
1
2
3
4
5
6
7
8
9
|
<?php
//这个叫做绝对路径
//$path = 'C:\AppServ\www\Basic6\Demo2.php';
//这个叫做相对路径
// $path = 'Demo2.php';
// echo $path;
$path = '../index.php' ; //这也是相对路径
echo realpath ( $path );
?>
|
Demo3.php
1
2
3
4
|
<?php
$path = 'C:\AppServ\www\Basic6\Demo3.php' ;
echo round ( filesize ( $path )/1024,2). 'KB' ;
?>
|
Demo4.php
1
2
3
4
5
6
7
|
<?php
//可用空间的查看 disk_free_space
echo round (disk_free_space( 'C:' )/1024/1024/1024,2). 'GB' ;
echo '<br/>' ;
//总空间
echo round (disk_total_space( 'C:' )/1024/1024/1024,2). 'GB' ;
?>
|
Demo5.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php
$path = 'C:\AppServ\www\Basic1\Demo1.php' ;
//我们要做的是将这个时间戳翻译成正常的日期
//echo fileatime($path);
//调整一下时区
date_default_timezone_set( 'Asia/Shanghai' );
//格式化一个本地日期
//echo date('Y-m-d H:i:s');
//fileatime -- 取得文件的上次访问时间
echo '最后访问:' . date ( 'Y-m-d H:i:s' , fileatime ( $path )). '<br/>' ;
//filectime -- 取得文件的 inode 修改时间,文件所有者,权限
echo '权限所有者等:' . date ( 'Y-m-d H:i:s' , filectime ( $path )). '<br/>' ;
//filemtime -- 取得文件修改时间,文件里面的内容修改后的时间
echo '内容修改时间:' . date ( 'Y-m-d H:i:s' , filemtime ( $path ));
?>
|
Demo6.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?php
//打开一个文件
//第一参数表明哪个文件 ,第二参数表明模式, w 只写
//w 如果,file.txt 已经有了,并且有数据了。那么这个文件,重新创建
//如果没有 file.txt 这个文件,那么我就自行创建
// //fopen -- 打开文件或者 URL
// //fopen 返回的是资源类型 resource,我们一般称它为句柄,或者叫资源句柄
// $fp = fopen('file.txt','w');
//
// //想文件里写入一些数据
// //fwrite($fp,"阅谁问君诵,水落清香浮。");
//
// $outString = "阅谁问君诵,水落清香浮。";
// echo strlen($outString);//获取长度
// fwrite($fp,$outString,strlen($outString));
//
// //fclose -- 关闭一个已打开的文件指针
// //当打开一个文件的时候,习惯性的将它关闭掉
// fclose($fp);
//就只有一句话,不需要任何其他灵活的事情的使用
//这个比较在行,只有在 PHP5 的版本才可以使用
file_put_contents ( 'file2.txt' , '阅谁问君诵,水落清香浮。' );
?>
|
Demo7.php
1
2
3
4
5
6
7
8
9
10
|
<?php
//第一种写法
//\r\n 可以让文本文件换行
$fp = fopen ( 'file.txt' , 'a' );
$outString = "阅谁问君诵,\r\n水落清香浮。\r\n" ;
fwrite( $fp , $outString , strlen ( $outString ));
fclose( $fp );
//第二种写法
// file_put_contents('file2.txt','阅谁问君诵,\r\n水落清香浮。');
?>
|
Demo8.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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
1
2
3
4
5
6
7
8
9
|
<?php
//现在要读出文件
$fp = fopen ( 'file.txt' , 'r' );
//feof -- 测试文件指针是否到了文件结束的位置
while (! feof ( $fp )){
echo fgetc ( $fp );
}
fclose( $fp );
?>
|
Demo11.php
1
2
3
4
5
6
7
8
9
10
11
|
<?php
//比如读取一个文件的时候,你必须保证这个文件一定要存在,才可以操作
//否则就报错,不让执行
//这个时候就有必须做一个检测
//file_exists -- 检查文件或目录是否存在
if ( file_exists ( 'file.txt' )){
echo '执行各种各样的文本读写操作!' ;
} else {
echo '此本文不存在,请管理员在后台重新生成一下。' ;
}
?>
|
Demo12.php
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
|
<?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 );
?>
|
Demo13.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php
// //打开一个目录
// @$dir = opendir('C:\AppServ\www\Basic6');
// //读出目录,使用一个循环来读出
// //readdir -- 从目录句柄中读取条目
// //字符串如果是布尔值,就是说,字符串不为空,那么就是真,为空就是假
// while (!!$file = readdir($dir)){
// echo $file.'<br/>';
// }
// //关闭
// @closedir($dir);
//print_r(scandir('C:\AppServ\www\Basic6'));
//删除一个目录
// //绝对路径的删除目录
// rmdir('C:\AppServ\www\Basic6\delMe');
// //相对路径的删除目录
// rmdir('delMe');
//删除一个文件
//ssunlink('file2.txt');
//重命名,这里,目录和文件都能改
//rename('file.txt','file2.txt');
?>
|
希望本文所述对大家PHP程序设计有所帮助。