当前位置:首页 » 文件管理 » php循环文件夹

php循环文件夹

发布时间: 2022-10-11 12:21:40

A. 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>

B. PHP 循环取文件夹里面文件的名称 然后列表

示例代码:

<?php
functiongetFileNames($dir){

//检查是否为目录
if(is_dir($dir)){

//打开一个目录句柄
if($dh=opendir($dir)){

//判断打开的目录句柄中的条目
while(($file=readdir($dh))!==false){

//判断是否为目录,进入子目录读取
if((is_dir($dir."/".$file))&&$file!="."&&$file!=".."){
echo"<b><fontcolor='red'>文件夹名:</font></b>",$file,"<br><hr>";
getFileNames($dir."/".$file."/");
}else{
if($file!="."&&$file!=".."){
echo$file."<br>";
}
}
}
//关闭由opendir()函数打开的目录句柄。
closedir($dh);
}
}
}
//测试示例
getFileNames("D:desc");
?>

运行结果:

C. PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了。
输出效果:
实现代码:
复制代码
代码如下:
<?php
$dir
=
"D:/";
//要获取的目录
echo
"**********
获取目录下所有文件和文件夹
***********<hr/>";
//先判断指定的路径是不是一个文件夹
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))!=
false){
//文件名的全路径
包含文件名
$filePath
=
$dir.$file;
//获取文件修改时间
$fmt
=
filemtime($filePath);
echo
"<span
style='color:#666'>(".date("Y-m-d
H:i:s",$fmt).")</span>
".$filePath."<br/>";
}
closedir($dh);
}
}
?>
这只是最基础的效果,弄懂了,想做出其他的需求也很简单了。

D. 求PHP遍历文件夹代码

1楼的弱爆了..
现在都玩php5了..用scandir函数最方便.

<?php
$dir = "."; //当前目录
list_file($dir);

function list_file($dir){
$list = scandir($dir); // 得到该文件下的所有文件和文件夹
foreach($list as $file){//遍历
$file_location=$dir."/".$file;//生成路径
if(is_dir($file_location) && $file!="." &&$file!=".."){ //判断是不是文件夹
echo "------------------------sign in $file_location------------------";
list_file($file_location); //继续遍历
}
echo "<br/>";
}
}
?>

E. PHP遍历文件及文件夹

<?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_mp($p);
echo '</pre>';
?>

F. 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+');
}
}

G. 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 />'
}
?>

执行脚本结果类似下图

H. php 怎么循环输出指定文件夹中指定前缀名的文件呢

用php函数strpos判断是否包含了

if(strpos('A',$filename)===0)
{
//以A开头的
}
else
{
}

I. 几种php文件夹遍历的方法

function dirTree(){
if(!is_dir($path)) return []; $files = []; $dir = opendir($path); while($file = readdir($dir)) { if($file == '.' || $file == '..') continue; $new_path = trim($path, '/').'/'.trim($file, '/'); $files[] = $new_path; if(is_dir($new_path)){ $files = array_merge($files, $this->ergodicDir2($new_path));
}
}
closedir($dir); return $files;
}

J. php 遍历文件夹

你的代码其实只有两个地方有小错误,一是少了一个),二是使用\分隔文件夹,我粘贴一下我调试通过的代码:

<?php
function list_filename($dir)
{
$dh=opendir($dir);
while($filename=readdir($dh))
if ($filename!="." && $filename!="..")
{
if (is_dir($dir.'/'.$filename)) list_filename($dir.'/'.$filename);
else echo $dir.'/'.$filename."\n";
}
closedir($dh);
}
$directory="d:/temp/game";
list_filename($directory);
?>

代码就是用你的修改了,只是删除了注释和调试语句。

热点内容
在团竞模式中怎么重置配置 发布:2024-10-08 02:12:54 浏览:288
宝马远程服务器如何启用 发布:2024-10-08 02:02:57 浏览:390
c语言freadfwrite 发布:2024-10-08 02:01:15 浏览:853
脚本还不简单吗 发布:2024-10-08 01:54:43 浏览:422
安卓手机如何像平板一样横屏 发布:2024-10-08 01:33:26 浏览:509
wapi认证服务器ip 发布:2024-10-08 01:33:24 浏览:506
centos自带python 发布:2024-10-08 00:53:31 浏览:340
android串口调试助手 发布:2024-10-08 00:45:03 浏览:405
sqlserver2008乱码 发布:2024-10-08 00:39:59 浏览:220
华为电脑服务器系统进不去提示 发布:2024-10-08 00:13:42 浏览:491