PHP uses recursion to traverse files in a specified folder.
The following editor will bring you an article on how to implement PHP recursive traversal of files in a specified folder. The editor thinks it is quite good, so I will share it with you now and give it as a reference for everyone. Let’s follow the editor and take a look.
I read a chapter about files and folders on the subway this morning. I just recently learned about Linux’s file system, and I feel that I am familiar with file attributes. The access is very similar to the Shell command, so I want to practice it at night.
I found that the folder function of php did not seem to provide traversing all the files in the folder (including files in subdirectories), so I wanted to implement one myself.
While writing, I found that some functions for operating folders were not what I thought. For example, dirname() gets the path of the folder where the file is located based on the complete file path provided, but if you pass in a folder, it gets its parent folder. This needs to be understood. The same is true for basename(). If you pass in the folder path, you will get the name of the folder. The results returned by these two functions do not end with '/'
<?php $dirPath='/home/WWW/Test';//目录,结尾不加'/‘ //执行遍历 recursion_readdir($dirPath); /** *@summary 重复times次字符char *@param $char 需要重复的字符 *@param $times 重复次数 *@return 返回重复字符组成的字符串 */ function forChar($char='-',$times=0){ $result=''; for($i=0;$i<$times;$i++){ $result.=$char; } return $result; } /** *@summary 递归读取目录 *@param $dirPath 目录 *@param $Deep=0 深度,用于缩进,无需手动设置 *@return 无 */ function recursion_readdir($dirPath,$Deep=0){ $resDir=opendir($dirPath); while($basename=readdir($resDir)){ //当前文件路径 $path=$dirPath.'/'.$basename; if(is_dir($path) AND $basename!='.' AND $basename!='..'){ //是目录,打印目录名,继续迭代 echo forChar('-',$Deep).$basename.'/<br/>'; $Deep++;//深度+1 recursion_readdir($path,$Deep); }else if(basename($path)!='.' AND basename($path)!='..'){ //不是文件夹,打印文件名 echo forChar('-',$Deep).basename($path).'<br/>'; } } closedir($resDir); }
The above is the detailed content of PHP uses recursion to traverse files in a specified folder.. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

In this chapter, we are going to learn the following topics related to routing ?

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.
