当前位置:首页 » 编程语言 » php遍历所有文件

php遍历所有文件

发布时间: 2022-08-02 03:57:17

php 遍历文件夹文件问题

<?php
//脚本根目录
define
(
'S_ROOT',
dirname
(
__FILE__
)
.
DIRECTORY_SEPARATOR
);
//递归查找搜索文件
function
glob_recursive($pattern,
$flags
=
0)
{

$files
=
glob
(
$pattern,
$flags
);

foreach
(
glob
(
dirname
(
$pattern
)
.
'/*',
GLOB_ONLYDIR
|
GLOB_NOSORT
)
as
$dir
)
{

$files
=
array_merge
(
$files,
glob_recursive
(
$dir
.
'/'
.
basename
(
$pattern
),
$flags
)
);

}

return
$files;
}
//如果搜索所有文件可用
S_ROOT.'image/'."*.*"
//如果只是某一类文件可以
S_ROOT.'image/'."*.gif"
$filelist
=
glob_recursive(S_ROOT.'image/'."*.gif");
foreach
($filelist
as
$file)
{

echo
'目录
'.dirname($file).'
路径
'.
$file.'<br
/>';
}
?><p>执行脚本结果类似下图</p>
<p></p>

Ⅱ PHP遍历并打印指定目录下所有文件实例

这篇文章主要介绍了PHP遍历并打印指定目录下所有文件实例,需要的朋友可以参考下
代码如下:
<?php
//功能:遍历并打印指定目录下所有文件

function
scan_dir($dir_name,$dir_flag=1)
{
static
$FILE_COUNT=1;

//记录文件数目
初值为1
目录名称不记
$FILE_COUNT--;

//每调用一次scan_dir()函数自减1
@$dir_handle=opendir($dir_name);

//抑制错误信息显示
便于自定义错误显示
if(!$dir_handle)
die("目录打开错误!");
while(false!==($filename=readdir($dir_handle)))
//文件名为‘0'时,readdir返回
FALSE,判断返回值是否不全等
{

$flag=$dir_flag;

//古怪的
is_dir($filename)
!
$filename这个路径必须能够寻到!当$filename不存在或者不是目录时返回false

if($filename!='.'&&$filename!='..')

{

$FILE_COUNT++;

//不记录当前路径和上一级路径

while($flag>0&&--$flag)

//负数仍为真

echo
'
';

if(is_dir($dir_name.$filename))
//判断
是否为一个目录

{

echo
'<strong>'."<a
href=".$dir_name.$filename.">".$filename."</a></strong><br>";

scan_dir($dir_name.$filename.'/',$dir_flag+1);

//$dir_flag标志目录树层次

}

else

{

echo
"<a
href=".$dir_name.$filename.">".$filename."</a><br>";

}

}
}
closedir($dir_handle);

//关闭目录句柄
echo
"文件总数:".$FILE_COUNT.'<br>';
}

scan_dir('D:wampwwwtestlamp61');
//指定的文件路径
?>

Ⅲ php怎么遍历指定目录下的文件(可指定文件类

遍历目录下文件,首先获取该目录下的所有文件名。

$folder='./folder/';
foreach(scandir($folder)AS$value){
if($value=='.'OR$value=='..')continue;
echo'文件名:'.$value." ";
}

Ⅳ PHP遍历输出文件夹内的所有文件用递归算法

一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。

以下是示例:

function file_list($path)
{
if ($handle = opendir($path))//打开路径成功
{
while (false !== ($file = readdir($handle)))//循环读取目录中的文件名并赋值给$file
{
if ($file != "." && $file != "..")//排除当前路径和前一路径
{
if (is_dir($path."/".$file))
{
// echo $path.": ".$file."<br>";//去掉此行显示的是所有的非目录文件
file_list($path."/".$file);
}
else
{
echo $path.": ".$file."<br>";
}
}
}
}
}

Ⅳ PHP遍历文件

不是很明白你的意思,又是遍历文件,又是排序的。不过,我认为你的目的应该是对这个文件名进行排序。 实现思路:可以建立一个数组,因为 php 在建立数组中可以指定键值,即 array('first'=>'网络','secode'=>'谷歌')。那么你可以在建立这个数组时,将每个元素的内容改成 B_A 形式,这个很简单吧,截取字符串后再合并就可以实现。而每个元素的键名(注意,是键名)还是 A_B。生成数组后,对数组排序。这时它是按 B_A 来排序的,也就是说键值的内容就是你想要的结果。如果还需要获取它所对应的原来文件名,需要使用 array_keys() 函数来返回。该函数的具体使用方法,请参考 PHP 中文手册。 希望以上可以给您帮助。

Ⅵ php 循环遍历文件夹下面的所有目录及文件并且每个文件都写入一句话

/****************************
*获取目录下的所有文件
*[$dir]文件夹路径
****************************/
functiondeepScanDir($dir){
$fileArr=array();
$dirArr=array();
$dir=rtrim($dir,'//');
if(is_dir($dir)){
$dirHandle=opendir($dir);
while(false!==($fileName=readdir($dirHandle))){
$subFile=$dir.DIRECTORY_SEPARATOR.$fileName;
if(is_file($subFile)){
$fileArr[]=$subFile;
}
elseif(is_dir($subFile)&&str_replace('.','',$fileName)!=''){
$dirArr[]=$subFile;
$arr=deepScanDir($subFile);
$dirArr=array_merge($dirArr,$arr['dir']);
$fileArr=array_merge($fileArr,$arr['file']);
}
}
closedir($dirHandle);
}
returnarray(
'dir'=>$dirArr,
'file'=>$fileArr
);
}
/****************************
*将内容写入文件
*[$filename]文件路径
*[$contents]文件内容
*[$type]读写类型
****************************/
functionwriteFileContents($filename,$contents,$type='a'){
if(!($fd=fopen($filename,$type)))
returnFALSE;

if(!fwrite($fd,$contents." ")){
fclose($fd);
returnFALSE;
}

fclose($fd);
returntrue;
}
#示例:
$dir="/usr/local/php/test/";
$dirFiles=deepScanDir($dir);
if(!empty($dirFiles['file'])){
foreach($dirFiles['file']as$file){
writeFileContents($file,"Hello",$type='a+');
}
}

Ⅶ php写一个函数,能够遍历一个文件夹下的所有文件和子文件夹

最近刚写的,可以遍历指定目录下的所有文件、文件夹、特定后缀的文件:

/**
*遍历目录
*@paramstring$dir绝对/相对路径
*@paramstring$filter默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件
*@paramconst$patten默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册
*@paramstring/bool$nocache防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值
*@returnarray
*/
functionglobdir($dir,$filter='*',$patten=GLOB_BRACE,$nocache=null){
static$file_arr=array();
isset($nocache)&&$file_arr=array();
if(!is_dir($dir))return;
if($patten==GLOB_ONLYDIR){
$code='if(is_dir($file)){$file_arr[]=$file;globdir($file,"*",GLOB_ONLYDIR);}';
}else{
$code='is_file($file)?$file_arr[]=$file:globdir($file,"'.$filter.'",'.$patten.');';
}
array_walk(glob("{$dir}/{$filter}",$patten),create_function('$file,$k,$file_arr',$code),&$file_arr);
if($filter!='*'){
array_walk(glob("{$dir}/*",GLOB_ONLYDIR),create_function('$dir,$k,$param','list($filter,$patten)=explode("|",$param);globdir($dir,$filter,$patten);'),"{$filter}|{$patten}");
}
return$file_arr;
}

Ⅷ PHP如何遍历指定文件夹,获取所有文件列表并生成下载链接

试编写代码如下:

<?php

$dir="D:/WWW/ftp";//指定的路径
$sitepath='http://localhost/ftp/';
//遍历文件夹下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目录下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//关闭句柄
closedir($handle);
}

?>


代码中需要提示的是:


如果是运行于互联网上,需要考虑文件的访问安全性。


运行截图:


Ⅸ php遍历输出文件夹下所有txt文件

可以,使用glob函数可以非常容易搞定,支持通配符。

<?php
header('Content-type:text/html;charset=utf-8');
$i=1;
foreach(glob('/file/*.txt')as$txt)
{
echo'第'.$i.'个文件'.basename($txt).'的内容是:';
echofile_get_contents($txt);
$i++;
echo'<hr/>';
}
热点内容
小科编程 发布:2025-01-23 11:48:55 浏览:673
安卓手机如何禁止未知软件安装 发布:2025-01-23 11:47:31 浏览:690
脚本我是一 发布:2025-01-23 11:44:27 浏览:642
安卓的哈灵麻将哪里下 发布:2025-01-23 11:26:17 浏览:230
全本免费阅读器在哪缓存 发布:2025-01-23 11:14:54 浏览:440
传输数据加密 发布:2025-01-23 11:03:20 浏览:256
win7文件夹没有共享 发布:2025-01-23 10:55:43 浏览:142
php原链接 发布:2025-01-23 10:49:56 浏览:515
演讲稿脚本需要哪些要素 发布:2025-01-23 10:49:55 浏览:385
传奇日常脚本 发布:2025-01-23 10:45:04 浏览:42