php文件目录操作

  • 目录操作

    • is_dir ( $path ) 判断当前路径是否为目录 ,返回布尔
    • opendir ( $path ) 打开路径目录,返回资源
    • readdir ( $handle ) 读取当前打开目录下一个文件,同时指针向前移动一位,返回字符串 (文件/目录名)
    • closedir ( $handle ) 关闭当前打开目录 返回布尔
    • getcwd ( ) 获得当前工作目录
    • rmdir 删除目录,删除前必须先删除目录下所有文件和目录

  代码:列出指定目录下所有文件和文件名

function traversal_dir($path, $deep = 0) {
if (is_dir($path)) {
$handle = opendir($path);
while (($file = readdir($handle)) !== false) {
if ($file == '.' || $file == '..') {
continue;
}
echo str_repeat('-', 2 * $deep) . $file . '</br>';
if (is_dir($path . '/' . $file)) {
traversal_dir($path . '/' . $file, $deep + 1);
}
}
}
} traversal_dir('./');
  • 文件操作

    • 路径部分

      • basename ( $path ) : 返回指定路径的文件名部分  返回String
      • dirname ( $path ) : 返回指定路径的目录名部分  返回string
    • 操作部分
      • fopen ( $file ) :打开文件或者 URL 返回资源
      • fread ( resource $handle , int $length ) : 读取文件,可指定长度
      • fwrite ( resource $handle , string $string [, int $length ] ) : 返回写入字符串大小,如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。
      • fgets ( resource $handle [, int $length ] ) : 读取一行文本,length指定一行文本长度
      • fclose ( resource $handle ) : 关闭文件
    • stat 获得文件信息
    • 判断部分
      • is_file ( $path ) :判断指定 路径是否为文件
      • file_exists ( $path )  : 检查目录或者文件是否存在
    • filesize ( $path ) 获得文件大小  int
    • filetype ( $path ) 获得文件类型 string (可能值:fifo,char,dir,block,link,file 和 unknown)
    • rename ( string $oldname , string $newname [, resource $context ] ) 重命名或者移动  返回布尔
    • unlink ( $path ) 删除文件  返回布尔
    • file_get_contents 将整个文件读如一个字符串
    • file_put_contents 将一个字符串写入文件

  代码:每执行一次文件,向文件头部追加 Hello word

$path = './hello.txt';
if (!file_exists($path)) {
$handle = fopen($path, 'w+');
fwrite($handle, 'Hello word' . '\r\n');
fclose($handle);
} else {
$handle = fopen($path, 'r');
$content = fread($handle, filesize($path));
$content = 'Hello word \r\n' . $content;
fclose($handle);
$handle = fopen($path, 'w');
fwrite($handle, $content);
fclose($handle);
}

  代码:遍历删除文件夹及文件夹下所有文件

function traversal_delete_dir($path) {
if (is_dir($path)) {
$handle = opendir($path);
while (($file = readdir($handle)) !== false) {
if ($file == '.' || $file == '..') {
continue;
}
if (is_dir($path . '/' . $file)) {
traversal_delete_dir($path . '/' . $file);
} else {
if (unlink($path . '/' . $file)) {
echo '删除文件' . $file . '成功';
}
}
}
closedir($handle);
rmdir($path);
}
} traversal_delete_dir('./shop_api');

<基础> PHP 文件、目录操作的更多相关文章

  1. Linux 文件/目录操作详解

    目录 Linux 文件/目录操作详解 初识Linux 一.文件/目录显示命令 ls 二.目录创建命令 mkdir 三.目录转移命令 cd 四.当前目录显示命令 pwd 五.文件处理命令 rmdir 六 ...

  2. Python - os 文件/目录操作

    最近经常用到 os 操作文件/目录,感觉挺好使的,但是一直没有系统的梳理学习一下, 今天想借此机会整理一下工作中常用的方法,也算自己总结学习的一个积累吧. 直接上代码,注释明了 #-*-coding: ...

  3. 《UNIX-Shell编程24学时教程》读书笔记Chap3,4 文件,目录操作

    Chap3 文件操作   P28 在这章中,要着重记住一些常用的选项,要有使用正则表达式的思维,能更快达到目的.----@im天行 3.1 列文件名 .profile  sh的初始化脚本: .kshr ...

  4. Python技法:实用运维脚本编写(进程/文件/目录操作)

    Python在很大程度上可以对shell脚本进行替代.笔者一般单行命令用shell,复杂点的多行操作就直接用Python了.这篇文章就归纳一下Python的一些实用脚本操作. 1. 执行外部程序或命令 ...

  5. Linux 指令(一)文件/目录操作

    1. 创建目录 mkdir 格式 mkdir [OPTION]... DIRECTORY... 选项 -p 递归创建 -v 创建时提示 例: root@ubuntu:/home/eko/x# mkdi ...

  6. Delphi中ExtractFilePath、ParamStr以及更多文件/目录操作涉及的函数。附加对应的例子

    先介绍ExtractFilePath和ParamStr ParamStr 该函数的原型是:function paramstr(i: Integer): String; 对于任何的application ...

  7. ACE6.2.0文件/目录操作

    文件读取.#include "ace/FILE_Connector.h"#include "ace/FILE_IO.h"void fileRW(){ACE_FI ...

  8. php对文件/目录操作的基础知识(图解)

    具体的如下图所示:

  9. 【C#公共帮助类】FTPClientHelper帮助类,实现文件上传,目录操作,下载等动作

    关于本文档的说明 本文档使用Socket通信方式来实现ftp文件的上传下载等命令的执行 欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利. 本人自从几年前走上编程之路,一直致力于收集 ...

  10. PHP 文件与目录操作函数总结

    >>>文件操作 打开 fopen();    打开文件 读取内容 fread();    从文件指针 handle 读取最多 length 个字节 readfile();    读入 ...

随机推荐

  1. SolrServer SolrRequest

    SolrServer实现类 HttpSolrServer HttpSolrServer uses the Apache Commons HTTPClient to connect to solr. H ...

  2. U3d 注意

    设置layer :不要使用go.layer= intMM;要使用Nguitool.Setlayer(go,intLayer); static public void SetLayer (GameObj ...

  3. live555峰哥的私房菜(二)-----计划任务(TaskScheduler)探讨

    计划任务(TaskScheduler)探讨 上一篇谈到SingleStep()函数会找到三种任务类型并执行之. 这三种任务是: socket handler, event handler, delay ...

  4. DB2如何将数据库表解锁

    死锁是应用程序争抢资源造成de,把相关应用程序结束掉就可以解除死锁了 先用list application for database yourdatabasename show detail 来看看应 ...

  5. 观察者模式之一:java实现观察者模式

    <观察者模式之一:java实现观察者模式> <观察者模式之二:JDK自带的观察者模式> 1.初步认识 观察者模式的定义: 在对象之间定义了一对多的依赖,这样一来,当一个对象改变 ...

  6. [UE4]Delay与Retriggerable Delay

    一.Delay 在右上角都有一个表盘的图标,表示不是在当帧内执行,而是需要一定时间才能完成的. 鼠标移上去,会有一段文字注释.根据指定的延迟时间执行一个延后的动作.当计时还没有结束的时候,如果再次被调 ...

  7. Keepalived+Nginx+tomcat实现系统的高可用

    Keepalived+Nginx+tomcat实现系统的高可用 1:安装vmware虚拟机 2:安装linux系统,我自己下载的centos6.5 3:安装JDK,tomcat 解压tomcat到/u ...

  8. 优化:js 逻辑运算符优化

    运算符的代码优化,可以精简代码,提高代码可读性 下面主要讨论下逻辑运算符与 &&, 或||. 示例: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭 ...

  9. Windows Server 2016 路由和远程访问

    本次实验是将Windows Server 2016 配置成一个路由器,为此网络上的客户端和服务器启用多重协议LAN到LAN,LAN到WAN,虚拟专用网络和网络地址转换路由服务.使用路由和远程访问需配置 ...

  10. fastle

    昨晚梦见日本和中国打仗, 发过来了很多导弹, 但是飞行速度很慢, 我还能看到上面的辐射三角号 之后我就趴在地上躲导弹 然后感觉身体被蒸发, 意识逐渐模糊, 就醒了 attack大爷的休闲(修仙)题 感 ...