php SPL DirectoryIterator 获取网站目录列表的方法_PHP教程
php SPL DirectoryIterator 获取网站目录列表的方法
自 PHP 5.0 起php便增加了一些内置的组件和接口,比如SPL(标准php库,全称:Standard PHP Library),该库定义的一些类和接口极大的方便了php开发人员轻松快速的开发实际项目。本篇文章将简单记录一下SPL库中的一个关于文件夹(目录)处理的类,DirectoryIterator。
关于处理文件夹(目录),首先看一下传统的处理办法,可参看本站文章:
php读取目录并列表显示目录中的文件的函数
下面用 DirectoryIterator 类实现如上连接文章中的办法:
function listDir($dir){ if(!file_exists($dir)||!is_dir($dir)) return ''; $dir=new DirectoryIterator($dir); $dirList=array('dirNum'=>0,'fileNum'=>0,'lists'=>''); while($dir->valid()){ if($dir->getFilename()!=='.'&&$dir->getFilename()!=='..'){ $dirList['lists'][$dir->key()]['name']=$dir->getFilename(); if($dir->isDir()){//判断是否是目录 $dirList['dirNum']++; $dirList['lists'][$dir->key()]['isDir']=1; }else{ $dirList['fileNum']++; $dirList['lists'][$dir->key()]['isDir']=''; } } $dir->next(); } return $dirList; }
下面是关于 DirectoryIterator 类中比较常见的一些方法及说明:
方 法 |
描 述 |
DirectoryIterator::__construct |
由路径构建一个新的目录迭代器 |
DirectoryIterator::current |
返回当前对象(Iterator接口所要求的方法) |
DirectoryIterator::getATime |
得到文件的最后访问时间 |
DirectoryIterator::getCTime |
得到文件的inode修改时间 |
DirectoryIterator::getChildren |
如果这是一个目录,为当前项返回一个迭代器 |
DirectoryIterator::getFilename |
返回当前目录项的文件名 |
DirectoryIterator::getGroup |
得到文件组 |
DirectoryIterator::getInode |
得到文件inode |
DirectoryIterator::getMTime |
得到文件的最后修改时间 |
DirectoryIterator::getOwner |
得到文件所有者 |
DirectoryIterator::getPath |
返回目录路径 |
DirectoryIterator::getPathname |
返回当前目录项的路径和文件名 |
DirectoryIterator::getPerms |
得到文件权限 |
DirectoryIterator::getSize |
得到文件大小 |
DirectoryIterator::getType |
得到文件类型 |
DirectoryIterator::isDir |
如果当前项是一个目录,返回true |
DirectoryIterator::isDot |
如果当前项是.或..,返回true |
DirectoryIterator::isExecutable |
如果文件可执行,返回true |
DirectoryIterator::isFile |
如果文件是一个常规文件,返回true |
DirectoryIterator::isLink |
如果文件是一个符号链接,返回true |
DirectoryIterator::isReadable |
如果文件可读,返回true |
DirectoryIterator::isWritable |
如果文件可写,返回true |
DirectoryIterator::key |
返回当前目录项 |
DirectoryIterator::next |
移动到下一项 |
DirectoryIterator::rewind |
将目录指针返回到开始位置 |
DirectoryIterator::valid |
检查目录中是否包含更多项 |
另外 SPL 类库中处理目录的方法还有 RecursiveDirectoryIterator 方法,这个方法与 DirectoryIterator 方法的区别就是可以获取包括子目录在内的所有文件。
关于 RecursiveDirectoryIterator 的方法有:
方 法 |
描 述 |
RecursiveDirectoryIterator::getChildren |
如果这是一个目录,为当前项返回一个迭代器 |
RecursiveDirectoryIterator::hasChildren |
返回当前项是否是一个目录而不是.或.. |
RecursiveDirectoryIterator::key |
返回当前目录项的路径和文件名 |
RecursiveDirectoryIterator::next |
移动到下一项 |
RecursiveDirectoryIterator::rewind |
将目录指针返回到开始位置 |
RecursiveIteratorIterator::current |
访问当前元素值 |
RecursiveIteratorIterator::getDepth |
得到递归迭代的当前深度 |
RecursiveIteratorIterator::getSubIterator |
得到当前活动子迭代器 |
RecursiveIteratorIterator::key |
访问当前键 |
RecursiveIteratorIterator::next |
前移到下一个元素 |
RecursiveIteratorIterator::rewind |
将迭代器返回到顶级内层迭代器的第一个元素 |
RecursiveIteratorIterator::valid |
检查当前位置是否合法 |
可以看到,SPL可以很快、很高效地处理你可能遇到的有关目录的所有问题。
另外关于 php DirectoryIterator 类的靠谱解释可参看php类库的标准文档:
http://php.net/manual/en/class.directoryiterator.php
您可能感兴趣的文章
- PHP中跳出多重循环使用break,continue,goto,return,exit的用法和区别
- php中echo,print,print_r,var_export,var_dump 的用法与区别
- dedeCMS(织梦)网站服务器目录安全设置经验分享
- 如何去除codeIgniter开发的网站url里面的index.php字符串
- PHP中file_get_contents于curl性能效率比较
- PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
- php读取目录并列表显示目录中的文件的函数
- 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
