PHP 遍历文件实现代码

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

function Files($path)
{
foreach(scandir($path) as $line)
{
if($line=='.'||$line=='..') continue;
if(is_dir($path.'/'.$line)) Files($path.'/'.$line);
else echo '<li>'.$path.'/'.$line.'</li>';
}
}

PHP遍历文件及文件夹
加入给定文件夹 C:\\Windows\\AppPatch
1.首先获取这个文件夹下面的所有东西,也就是文件,文件夹,放一个数组里面
$fileArr = array(
'files' => array(), //文件放一个数组
'dirs' => array(), //文件夹放一个数组
)
2.如果存在子文件夹,遍历子文件夹,获取文件夹和文件,同样放进那个数组,如此循环,一个不漏
复制代码 代码如下:

<?php
$dir = 'F:\\game';
function read_dir_all($dir) {
$ret = array('dirs'=>array(), 'files'=>array());
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file != '.' && $file !== '..') {
$cur_path = $dir . DIRECTORY_SEPARATOR . $file;
if(is_dir($cur_path)) {
$ret['dirs'][$cur_path] = read_dir_all($cur_path);
} else {
$ret['files'][] = $cur_path;
}
}
}
closedir($handle);
}
return $ret;
}
$p = read_dir_all($dir);
echo '<pre>';
var_dump($p);
echo '</pre>';
?>

php遍历一个文件夹下的所有目录及文件
在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。
  这个题目有好多种解决方法。但大致思路都一样。采用递归。
复制代码 代码如下:

$path = './filepath';
function getfiles($path)
{
if(!is_dir($path)) return;
$handle = opendir($path);
while( false !== ($file = readdir($handle)))
{
if($file != '.' && $file!='..')
{
$path2= $path.'/'.$file;
if(is_dir($path2))
{
echo ' ';
echo $file;
getfiles($path2);
}else
{
echo ' ';
echo $file;
}
}
}
}
print_r( getfiles($path));
echo '<HR>';
function getdir($path)
{
if(!is_dir($path)) return;
$handle = dir($path);
while($file=$handle->read())
{
if($file!='.' && $file!='..')
{
$path2 = $path.'/'.$file;
if(is_dir($path2))
{
echo $file."\t";
getdir($path2);
}else
{
echo $file.' ';
}
}
}
}
getdir($path);
echo '<HR>';
function get_dir_scandir($path){
$tree = array();
foreach(scandir($path) as $single){
if($single!='.' && $single!='..')
{
$path2 = $path.'/'.$single;
if(is_dir($path2))
{
echo $single."\r\n";
get_dir_scandir($path2);
}else
{
echo $single."\r\n";
}
}
}
}
get_dir_scandir($path);
echo '
<HR>';
function get_dir_glob(){
$tree = array();
foreach(glob('./curl/*') as $single){
echo $single."\r\n";
}
}
get_dir_glob();
echo '
<HR>';
function myscandir($path)
{
if(!is_dir($path)) return;
foreach(scandir($path) as $file)
{
if($file!='.' && $file!='..')
{
$path2= $path.'/'.$file;
if(is_dir($path2))
{
echo $file;
myscandir($path2);
}else
{
echo $file.' ';
}
}
}
}
myscandir($path);
echo '<HR>';
function myglob($path)
{
$path_pattern = $path.'/*';
foreach(glob($path_pattern) as $file)
{
if(is_dir($file))
{
echo $file;
myscandir($file);
}else
{
echo $file.' ';
}
}
}
myglob($path);

相关文章

解决安装WampServer时提示缺少msvcr110.dll文件的问题

解决安装WampServer时提示缺少msvcr110.dll文件的问题

今天开始学习PHP,对于初学者来说,我们一定希望从简单的开始,所以,从集成环境非常好的WampServer的安装开始. 1、下载WampServer安装程序,安装完毕后会出现一个错误.如...

PHP改进计算字符串相似度的函数similar_text()、levenshtein()

similar_text()中文汉字版 复制代码 代码如下:      <?php     ...

一个PHP数组应该有多大的分析

虽然通常在PHP中进行大量数组运算从一定程度上反应程序设计上可能存在问题,但是粗略的估计数组占用的内存是很有必要的。 首先感觉一下1000个元素的整数数组占有的内存: 复制代码 代码如下...

php自定义函数call_user_func和call_user_func_array详解

call_user_func函数类似于一种特别的调用函数的方法,使用方法如下: 复制代码 代码如下: function a($b,$c) { echo $b; echo $c; } ca...

PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码

复制代码 代码如下: function ce_getmac() { if(PHP_OS == 'WINNT') { $return_array = array(); $temp_arra...