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单链表的实现代码

    下面是关于“PHP单链表的实现代码”的完整攻略: 一、单链表的概念 单链表是一种线性数据结构。与数组不同,链表中的元素在内存中不是连续放置的,每个元素由一个存储本身元素的节点和一个指向下一个元素的指针组成。 二、单链表的实现 1. 定义单链表节点类 首先,我们需要定义一个节点类,用来表示单链表中的节点。每个节点应该包含一个数据域(存放节点的值)和一个指针域(…

    PHP 2023年5月27日
    00
  • PHP使用正则表达式实现过滤非法字符串功能示例

    下面是关于“PHP使用正则表达式实现过滤非法字符串功能示例”的完整攻略。 什么是正则表达式? 正则表达式是一个用于匹配文本中模式(pattern)的通用工具。使用正则表达式,可以在文本中查找特定的模式,或者将文本中的字符替换为其他字符。 正则表达式基础语法 在 PHP 中,可以使用 /pattern/ 来表示正则表达式,其中 pattern 是要匹配的模式。…

    PHP 2023年5月26日
    00
  • 使PHP自定义函数返回多个值

    在PHP中,函数通常只能返回一个值,但是我们可以使用一些特殊的技巧来使函数能够返回多个值。 以下是使PHP自定义函数返回多个值的完整攻略: 方法一:返回数组 我们可以在自定义函数中创建一个数组来容纳多个返回值,该数组可以通过函数返回供调用者使用。以下是一个示例: function calculate($a, $b) { $sum = $a + $b; $di…

    PHP 2023年5月25日
    00
  • PHP下escape解码函数的实现方法

    PHP下escape解码函数的实现方法 什么是escape编码? escape编码是指将字符串中的某些字符转换为以“%”符号表示的十六进制ASCII值,并在前面加上“%”符号。这种编码方法常用于URL参数传递、HTML的attribute和某些邮箱协议。 例如,对于字符串“ hello world !”,如果使用escape编码,就会得到“%20hello%…

    PHP 2023年5月27日
    00
  • 无JS,完全php面向过程数据分页实现代码

    下面是无JS、完全php面向过程数据分页实现代码的攻略: 1. 概述 本文介绍如何使用完全php面向过程实现无JS的数据分页功能。在网页开发中,数据分页是一个非常基础且常用的功能,用于分页展示大量数据,提高用户的体验感。通常情况下,我们可以使用JavaScript等前端语言来实现数据分页功能。但是,如果我们想要实现纯后端的数据分页,则需要使用php等服务器端…

    PHP 2023年5月27日
    00
  • 微信小程序嵌入腾讯视频源过程详解

    微信小程序嵌入腾讯视频源过程详解 什么是微信小程序和腾讯视频源 微信小程序是一种轻量级的应用程序,可以在微信平台上运行,无需下载安装即可使用。而腾讯视频源是腾讯视频平台提供的一种视频播放服务,可以为用户提供海量的在线视频资源。 微信小程序如何嵌入腾讯视频源 步骤1:获取腾讯视频源的API接口 我们可以登录腾讯视频平台的开发者中心,根据自己的需求,申请相应的A…

    PHP 2023年5月23日
    00
  • PHP实现非阻塞模式的方法分析

    PHP实现非阻塞模式的方法分析 什么是非阻塞模式? 在网络编程中,应用程序通常使用同步方式发送和接收数据。当程序调用接收数据的操作时,如果没有数据可读,程序将会被阻塞,直到有数据可读为止。同样的,当程序调用发送数据的操作时,如果底层传输层的发送缓冲区已满,程序将会被阻塞,直到缓冲区有足够的空间为止。这种阻塞方式会导致程序在等待底层网络传输完成时无法做其他的事…

    PHP 2023年5月26日
    00
  • php+mysql实现简单的增删改查功能

    为了讲解这个问题,我们需要明确一些概念。PHP和MySQL都是网站开发中常用的技术,其中PHP用于实现网站的业务逻辑,而MySQL则主要用于数据的存储和管理。下面我将从以下几个方面逐一讲解如何使用PHP和MySQL实现简单的增删改查功能。 1. 搭建PHP开发环境 首先,我们需要安装PHP的开发环境,比如XAMPP,它是一个免费的、易于安装和使用的PHP开发…

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