PHP SPL SplFileInfo FilterIterator 轮询文件删除

基于PHP spl 遍历文件删除过期的日志文件

 

一.定义PHP类 , 限制文件扩展 RecursiveFileFilterIterator.class.php 

<?php
class RecursiveFileFilterIterator  extends FilterIterator 
{
	
	protected $ext = array('log','jpg','gif');

	public function __construct($path) {
		parent::__construct(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)));
	}

	public function accept() {
		$item = $this->getInnerIterator();
		if ($item->isFile() && in_array(pathinfo($item->getFilename(), PATHINFO_EXTENSION), $this->ext)) {
			return TRUE;
		}
	}
}

  

二.调用 

<?php 
require 'RecursiveFileFilterIterator.class.php';
try {
    foreach (new RecursiveFileFilterIterator("d:\xxx\xxx\log") as $item) {
        echo "=====================".PHP_EOL;
        if (time() - $item->getCTime() > (24*3600*30)) {
            var_dump($item);
            var_dump($item->getPathName());
            #@unlink($item->getPathName());
        }
    }
} catch (Exception $e) {
    var_dump($e->getMessage());
}

 

三.附上网上整理的一些方法和属性 

 'getATime' => $file->getATime(), //最后访问时间
    'getBasename' => $file->getBasename(), //获取无路径的basename
    'getCTime' => $file->getCTime(), //获取inode修改时间
    'getExtension' => $file->getExtension(), //文件扩展名
    'getFilename' => $file->getFilename(), //获取文件名
    'getGroup' => $file->getGroup(), //获取文件组
    'getInode' => $file->getInode(), //获取文件inode
    'getLinkTarget' => $file->getLinkTarget(), //获取文件链接目标文件
    'getMTime' => $file->getMTime(), //获取最后修改时间
    'getOwner' => $file->getOwner(), //文件拥有者
    'getPath' => $file->getPath(), //不带文件名的文件路径
    'getPathInfo' => $file->getPathInfo(), //上级路径的SplFileInfo对象
    'getPathname' => $file->getPathname(), //全路径
    'getPerms' => $file->getPerms(), //文件权限
    'getRealPath' => $file->getRealPath(), //文件绝对路径
    'getSize' => $file->getSize(),//文件大小,单位字节
    'getType' => $file->getType(),//文件类型 file  dir  link
    'isDir' => $file->isDir(), //是否是目录
    'isFile' => $file->isFile(), //是否是文件
    'isLink' => $file->isLink(), //是否是快捷链接
    'isExecutable' => $file->isExecutable(), //是否可执行
    'isReadable' => $file->isReadable(), //是否可读
    'isWritable' => $file->isWritable(), //是否可写

 

原文链接:https://www.cnblogs.com/phpnan/p/17171252.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP SPL SplFileInfo FilterIterator 轮询文件删除 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • php常用字符串输出方法分析(echo,print,printf及sprintf) 原创

    PHP常用字符串输出方法分析 在PHP中,输出字符串是我们经常要面对的问题,我们需要掌握一些常用的输出方法来输出我们想要的内容。本文主要介绍PHP常用的四种字符串输出方法echo、print、printf和sprintf。 echo echo是PHP中最常用的字符串输出函数,可以输出一个或多个字符串,语法格式如下: echo string1, string2…

    PHP 2023年5月26日
    00
  • 优化PHP代码技巧的小结

    下面是“优化PHP代码技巧的小结”的完整攻略。 优化PHP代码技巧的小结 1. 基础优化 1.1 减少函数调用次数 函数调用是一件非常消耗资源的事情,因为函数调用本身会带来一定的性能开销。因此,我们需要尽量减少函数调用次数,以提高代码性能。例如,我们可以将常用的函数的结果缓存起来,避免频繁的调用。 1.2 使用静态方法和属性 使用静态方法和属性可以减少对象的…

    PHP 2023年5月23日
    00
  • css height属性中的calc方法详解

    当我们为一个元素设置高度时,我们可以使用CSS中的height属性。height属性可以采用相对或者绝对的长度值来设置,但是如果我们需要执行更加复杂的计算操作,这时候便需要使用calc()方法。 calc()方法简介 calc()方法是CSS3中所有浏览器都支持的长度计算方法,它允许你按照特定的算术表达式计算长度。在calc()方法中可以使用四则运算和括号并…

    PHP 2023年5月26日
    00
  • PHP云打印类完整示例

    下面我将为您详细讲解“PHP云打印类完整示例”的完整攻略: 什么是PHP云打印类? PHP云打印类是一种将云打印技术应用到PHP语言中的封装类库,可以帮助您轻松实现在云端对打印设备的远程控制和管理。它是通过在打印设备上安装云打印代理程序,并将设备与云端打印服务进行绑定,从而实现远程控制和管理的。 如何使用PHP云打印类 使用PHP云打印类一般需要按照以下步骤…

    PHP 2023年5月26日
    00
  • 微信小程序 上传头像的实例详解

    微信小程序上传头像的实例详解 近些年,微信小程序越来越受到开发者和用户的青睐,其中上传头像是开发中经常会遇到的功能之一。本文将详细讲述在微信小程序中如何实现上传头像的功能。 准备工作 在进行上传头像功能前,需要先确保以下几点准备工作: 项目已使用云开发,开通了云存储服务 在云存储中创建了一个文件夹用以存放头像 实现步骤 步骤一:在页面中添加上传按钮 在 WX…

    PHP 2023年5月23日
    00
  • 微信小程序网络请求的封装与填坑之路

    微信小程序网络请求的封装与填坑之路 为什么要封装网络请求 微信小程序的网络请求和常见的前端框架(如React,Vue等)的网络请求并不一样,其API的使用方式和参数需要开发者进行适配,使得开发效率和代码可维护性降低。同时,我们在进行小程序开发的过程中,会经常需要进行网络请求,如果每次都需要写重复代码,则会降低开发效率,也容易出现冗余问题。因此,封装网络请求显…

    PHP 2023年5月30日
    00
  • php 字符串中是否包含指定字符串的多种方法

    下面是关于“php字符串中是否包含指定字符串的多种方法”的攻略。 1. 使用strpos函数 strpos函数是PHP提供的原生函数,可以用于判断一个字符串中是否包含指定的字符串。 如果返回值不是false,代表包含;如果返回false,代表不包含。 strpos函数需要传入两个参数,第一个参数是源字符串,第二个参数是要查找的字符串。函数将返回要查找的字符串…

    PHP 2023年5月26日
    00
  • 使用 eAccelerator加速PHP代码的目的

    使用 eAccelerator 加速 PHP 代码的目的是为了提高 PHP 代码的执行效率,加快响应速度,降低服务器负载,提升网站性能。eAccelerator 是一个免费的开源 PHP 加速器,可以将 PHP 脚本编译成字节码,并对字节码进行缓存,从而避免重复编译和解释,提高 PHP 执行效率。以下是使用 eAccelerator 加速 PHP 代码的具体…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部