分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

PHP系列(九)PHP文件系统处理

发布时间:2023-09-06 01:07责任编辑:林大明关键词:PHP

php文件系统处理

1、文件系统概述

is_dir( ) -- 判断给定文件名是否是一个目录

语法结构:bool is_dir(名称)

返回类型:文件名存在并且是一个目录则返回 true,否则返回 false。

is_executable( ) -- 判断给定文件名是否可执行

语法结构:bool is_executable(名称)

返回类型:如果文件存在且可执行则返回 true ,否则返回 false 。

is_file( ) -- 判断给定文件名是否为一个正常的文件

语法结构:bool is_file(名称)

返回类型:如果文件存在且为正常的文件则返回 true 。

is_link( ) -- 判断给定文件名是否为一个符号连接

语法结构:bool is_link(名称)

返回类型:如果文件存在并且是一个符号连接则返回 true。

is_readable( ) -- 判断给定文件名是否可读

语法结构:bool is_readable(文件名称)

返回类型:如果文件存在并且可读则返回 true 。

is_writable( ) -- 判断给定的文件名是否可写

语法结构:bool is_writable(文件名称)

返回类型:如果文件存在并且可写则返回 true 。

2、文件的属性

//获取文件属性的函数

FunctiongetFilePro($filename) {

//文件是否存在

if(file_exists($filename)) {

echo"这个文件存在<br>";

//获取文件的类型

getFileType($filename);

if(is_dir($filename)) {

echo"这是一个目录<br>";

}

if(is_file($filename)) {

echo"这是一个文件<br>";

echo"文件大小为:".tosize(filesize($filename))."<br>";

}

//获取文件权限

if(is_readable($filename)) {

echo"文件可读<br>";

}

if(is_writable($filename)) {

echo"文件可写<br>";

}

if(is_executable($filename)) {

echo"文件可执行<br>";

}

//创建时间

echodate("Y-m-d H:i:s",filectime($filename))."<br>";

//访问时间

echodate("Y-m-d H:i:s",fileatime($filename))."<br>";

//修改时间

echodate("Y-m-d H:i:s",filemtime($filename))."<br>";

}else {

echo"这个文件不存在<br>";

}

}

//文件大小转换函数

functiontosize($size) {

$s=$size;

$dw="";

if($size> pow(2, 40)) {

$s= $size/pow(2, 40);

$dw= "TB";

}elseif($size > pow(2, 30)) {

$s= $size/pow(2, 30);

$dw= "GB";

}elseif($size > pow(2, 20)) {

$s= $size/pow(2, 20);

$dw= "MB";

}elseif($size > pow(2, 10)) {

$s= $size/pow(2, 10);

$dw= "KB";

}else{

$s= $size;

$dw= "types";

}

return$s.$dw;

}

//获取文件的类型

functiongetFileType($filename){

//可能的值:fifo,char,dir,block,link,file

switch(filetype($filename)) {

case‘dir‘:

echo"这是一个目录<br>";

break;

case‘char‘:

echo"这是一个字符设置<br>";

break;

case‘block‘:

echo"这是一个块设备<br>";

break;

case‘file‘:

echo"这是一个文件<br>";

break;

case‘link‘:

echo"这是一个链接<br>";

break;

default:

echo"末知类型<br>";

}

}

getFilePro("./feng.txt");

3、解析目录路径

DIRECTORY_SEPARATOR 代表 /

PATH_SEPARATOR 代表 ;

PHP_EOL 代表 换行符

4、遍历目录

//打开目录资源

$dir = opendir("plus");

while($filename = readdir($dir)) {

//不要操作.和..

if($filename!="."&& $filename!="..") {

//一定要注意路径, 找对才可以

$filename ="./plus/".$filename;

if(is_dir($filename)) {

echo "目录:".$filename."<br>";

} else {

echo "文件:".$filename."<br>";

}

}

}

rewinddir($dir);//倒回目录句柄

echo"@@@@@@@@@@@@@<br>";

while($filename = readdir($dir)) {

//不要操作.和..

if($filename!="."&& $filename!="..") {

//一定要注意路径, 找对才可以

$filename ="./plus/".$filename;

if(is_dir($filename)) {

echo "目录:".$filename."<br>";

} else {

echo "文件:".$filename."<br>";

}

}

}

//关闭这个资源

closedir($dir);

//opendir()打开目录句柄

//readdir()从目录句柄中读取条目

//is_dir()判断给定文件名是否是一个目录

//rewinddir()倒回目录句柄

//closedir()关闭目录句柄

//glod()遍历目录里文件

foreach(glob("member/*") as $filename ) {

echo$filename."<br>";

}

5、统计目录的个数和大小

$total = disk_total_space("c:"); //统计磁盘总大小的

$free = disk_free_space("c:");//统计磁盘可用空间大小

echo"C:盘约总大小:".round($total/pow(2,30))."G<br>";

echo"C:盘可用空间:".round($free/pow(2,30))."G<br>";

统计目录中的个数和大小实例

$dirn =0;//目录数

$filen =0;//文件数

//用来统计一个目录下的文件和目录的个数

functiongetdirnum($file){

global $dirn;

global $filen;

$dir = opendir($file);

while($filename = readdir($dir)){

if($filename!="."&& $filename!=".."){

$filename =$file."/".$filename;

if(is_dir($filename)){

$dirn++;

getdirnum($filename);//递归、就可以查看所有子目录

}else{

$filen++;

}

}

}

closedir($dir);

}

getdirnum("plus");

echo"目录数为:{$dirn}<br>";

echo"文件数为:{$filen}<br>";

//统计一个目录大小

functiondirsize($file){

$size = 0;

$dir = opendir($file);

while($filename = readdir($dir)){

if($filename!="." && $filename!=".."){

$filename =$file."/".$filename;

if(is_dir($filename)){

//使用递归

$size +=dirsize($filename);

}else{

$size += filesize($filename);

}

}

}

closedir($dir);

return$size;

}

echo"目录大小为:".dirsize("member")/pow(1024,2)."Mb<br>";

6、建立与删除目录

//mkdir("meizi"); 新建目录

//mkdir("finger",0644);

//rmdir("meizi"); 删除目录

//rmdir("finger");

//unlink 删除文件

functiondeldir($dirname){

if(!file_exists($dirname)){

die("文件夹不存在!");

}

if(is_file($dirname)){

unlink($dirname);

}

$dir = opendir($dirname);

while($filename = readdir($dir)){

if($filename !="."&& $filename!=".."){

$filename =$dirname."/".$filename;

if(is_dir($filename)){

deldir($filename);

}else{

unlink($filename);

}

}

}

}

deldir("aaa");

7、复制移动目录

//$dirsrc源目录

//$dirto 目标目录

function copydir($dirsrc, $dirto){

//如果原来的文件存在、是不是一个目录

if(file_exists($dirto)){

if(!is_dir($dirto)){

echo "目标不是一个目录、不能copy进去<br>";

exit;

}

}else{

mkdir($dirto);

}

$dir =opendir($dirsrc);

while($filename= readdir($dir)){

if($filename != "."&& $filename!=".."){

$srcfile =$dirsrc."/".$filename;//原文件

$tofile =$dirto."/".$filename;//目标文件

if(is_dir($srcfile)){

copydir($srcfile,$tofile); //递归处理所有子目录

}else{

copy($srcfile, $tofile);

}

}

}

}

copydir("member","E:/cisco");

8、文件的一些基本操作函数

//创建一个空文件

 

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved