分享web开发知识

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

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

PHP-目录的基本操作

发布时间:2023-09-06 01:38责任编辑:顾先生关键词:PHP

1.基本文件类型

  File    普通文件,如文本文件、可执行文件。

  Dir   目录文件,比如某个文件夹

  Unknow  未知文件

  在windows中只有上面三种文件类型,如果是linux系统还有下面文件类型

  Block  块设备,比如某个磁盘分区

  Char  字符设备,比如键盘、打印机

  Fifo  管道,用来将数据从一个进程传递到另一个进程

  Link  链接,相当于windows中的快捷方式

  

 使用filetype获得文件的类型

1 <?php2 ????/*使用filetype()获取文件类型*/3 4 ????echo filetype(__FILE__);//file5 ????echo filetype(__DIR__);//dir6 ?>

  判断文件类型

1 <?php2 ????/*使用filetype()获取文件类型*/3 4 ????echo is_file(__FILE__);//true5 ????echo is_dir(__DIR__);//true6 ?>

 

2.文件的属性

  

 1 <?php 2 ????/*file_exist()判断文件是否存在*/ 3 ????if(file_exists(__FILE__)) echo "文件".__FILE__."存在<br>"; 4 ????if(file_exists(__DIR__)) echo "目录".__DIR__."存在<br>"; 5 ?6 ????/*filesize()取得文件的大小,以字节为单位*/ 7 ????/*注:是取得文件的大小不是目录*/ 8 ????echo "文件".__FILE__."的大小是".filesize(__FILE__)."字节<br>"; 9 10 ????/*is_readable()判断文件是否可读*/11 ????if(is_readable(__FILE__)) echo "文件".__FILE__."可读<br>";12 13 ????/*is_writable()判断文件是否可写*/14 ????if(is_readable(__FILE__)) echo "文件".__FILE__."可写<br>";15 16 ????/*is_executable()判断文件是否可执行*/17 ????if(is_readable(__FILE__)) echo "文件".__FILE__."可执行<br>";18 19 ????date_default_timezone_set(‘PRC‘);20 21 ????/*filectime()文件的创建时间*/22 ????echo "文件的创建时间为".date(‘Y/m/d H:i:s‘,filectime(__FILE__))."<br>";23 24 ????/*filemtime()文件的修改时间*/25 ????echo "文件的修改时间为".date(‘Y/m/d H:i:s‘,filemtime(__FILE__))."<br>";26 27 ????/*fileatime()文件的最后访问时间*/28 ????echo "文件的最后访问时间".date(‘Y/m/d H:i:s‘,filectime(__FILE__))."<br>";29 30 ????/*stat()获取文件大部分属性*/31 ????print_r(stat(__FILE__));32 ?>

  注:windows系统下默认是不会更新访问时间的,具体可以参考这里。

3.目录的基本操作

  路径分隔符

    Linux系统中以‘/‘做为路径分隔符,像这样E:/xampp/htdocs/test.php

    Windows系统中以‘\‘作为路径分隔符E:\xampp\htdocs\test.php,但是Windows系统也是支持‘/‘作为分隔符的。

    所以为了保证程序的可移植性,最好用Linux的写法。

  解析路径 

 1 <?php 2 ????/*basename()返回路径中的文件名*/ 3 ????echo "路径".__FILE__."的文件名是".basename(__FILE__)."<br>"; 4 ?5 ????/*dirname()返回一个路径中的目录部分*/ 6 ????echo "路径".__FILE__."的目录名是".dirname(__FILE__)."<br>"; 7 ?8 ????/*pathinfo()将一个路径中的信息以数组形式返回*/ 9 ????print_r(pathinfo(__FILE__));10 ?>

   遍历目录

 1 <?php 2 ????/*opendir()打开一个目录,接受一个路径,返回该目录的资源句柄*/ 3 ????var_dump($dir=opendir(__DIR__));//resource(3) of type (stream) 4 ????echo "<br>"; 5 ?6 ????/*readdir()接受一个资源句柄返回该目录当前指针位置的文件名,并将指针向下移动*/ 7 ????/*前两个文件名是 . 和 ..表示当前目录和上一级目录*/ 8 ?????9 ????echo readdir($dir)."<br>";//.10 ????echo readdir($dir)."<br>";//..11 12 ????/*rewinddir()将目录指针重置到开头出*/13 ????rewinddir($dir);14 ????echo readdir($dir)."<br>";//.15 16 ????/*closedir()释放资源*/17 ????closedir($dir);18 ?>

   

 1 <?php 2 ????/*遍历出目录的结构*/ 3 ?4 ????function dirlist($dir){ 5 ????????$sdir=opendir($dir); 6 ????????while ($fname=readdir($sdir)) ?7 ????????{ 8 ????????????echo $fname."<br>"; 9 ????????}10 ????????closedir($sdir);11 ????}12 13 ????dirlist(__DIR__);14 ?>

  计算目录大小

 1 <?php 2 ????/*我们可以用filesize()查看文件的大小*/ 3 ????/*PHP没有提供统计目录大小的函数,但我们可以通过前面学习的写一个*/ 4 ?5 ????function dirsize($dir){ 6 ????????$size=0; 7 ????????if (!$dir_s=opendir($dir)) ?8 ????????{ 9 ????????????return false;10 ????????}11 ????????while($file=readdir($dir_s))12 ????????{13 ????????????if ($file==‘.‘||$file==‘..‘) 14 ????????????{15 ????????????????continue;16 ????????????}17 ????????????if(is_dir($dir.‘/‘.$file))18 ????????????{19 ????????????????$size+=dirsize($dir.‘/‘.$file);20 ????????????}21 ????????????else22 ????????????{23 ????????????????$size+=filesize($dir.‘/‘.$file);24 ????????????}25 26 ????????????27 ????????}28 ????????return $size;29 ????}30 31 ????echo dirsize(__DIR__);32 ?>

   注:php5表示的最大整数为PHP_INT_MAX,这个数如果等于字节数,那么表示的文件大小基本上等于2GB,所以如果想计算2GB以上的文件,请换PHP7

  复制和删除目录

  

 1 <?php 2 ????/*copy()函数用来赋值问价*/ 3 ????/*将当前目录下的test.php复制到testcookie目录下*/ 4 ????copy(‘test.php‘,‘./testcookie/test.php‘);//新的路径名必须存在否则会报错 5 ?6 ????/*unlink()删除一个文件*/ 7 ????unlink(‘./testcookie/test.php‘); 8 ?9 ????/*创建目录mkdir()*/10 ????mkdir(‘testdir‘);11 12 ????/*PHP没有复制目录的函数不过我们可以用mkdir()和copy()写一个*/13 ????function copydir($sdir,$ddir)14 ????{15 ????????if(is_dir($sdir))16 ????????{17 ????????????if(file_exists($ddir))18 ????????????{19 ????????????????echo "目的路径已经存在";20 ????????????????return false;21 ????????????}22 ????????????else23 ????????????{24 ????????????????mkdir($ddir);25 ????????????????$dir_handle=opendir($sdir);26 ????????????????while($filename=readdir($dir_handle))27 ????????????????{ ???28 ????????????????????if($filename=="."||$filename=="..") continue;29 ????????????????????if(is_dir($sdir."/".$filename))30 ????????????????????{31 ????????????????????????copydir($sdir."/".$filename,$ddir."/".$filename);32 ????????????????????}33 ????????????????????else34 ????????????????????{35 ????????????????????????copy($sdir."/".$filename,$ddir."/".$filename);36 ????????????????????}37 ????????????????}38 39 ????????????????closedir($dir_handle);40 ????????????}41 ????????}42 ????????else43 ????????{44 ????????????echo "不是目录无法创建";45 ????????????return false;46 ????????}47 ????}48 49 ????50 ????/*rmdir()删除目录,该目录必须为空否则删除失败*/51 ????//rmdir(‘testdir‘);52 53 ????/*用rmdir()和unlink()可以写一个级连删除目录的函数*/54 ????function deldir($dir)55 ????{56 ????????if(is_dir($dir))57 ????????{58 ????????????$dir_handle=opendir($dir);59 ????????????while($filename=readdir($dir_handle))60 ????????????{61 ????????????????if($filename=="."||$filename=="..") continue;62 ????????????????if(is_dir($dir."/".$filename))63 ????????????????{64 ????????????????????deldir($dir."/".$filename);65 ????????????????}66 ????????????????else67 ????????????????{68 ????????????????????unlink($dir."/".$filename);69 ????????????????}70 71 ????????????}72 ????????????closedir($dir_handle);73 ????????????rmdir($dir);74 ????????}75 ????????else76 ????????{77 ????????????echo "不是目录";78 ????????????return false;79 ????????}80 ????}81 ????deldir(‘./testcooki‘);82 ?>

PHP-目录的基本操作

原文地址:https://www.cnblogs.com/patermenkey/p/8337911.html

知识推荐

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