㈠ 写一个php函数,可以遍历目录下面的所有文件及子文件夹并修改后缀名
可以用递归的方式,还有别的方式能实现function my_dir($dir){ $files = array(); if (@$handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { if ($file != ".." && $file != ".") { if (is_dir($dir . "/" . $file)) { $files[$file] = my_dir($dir . "/" . $file); } else { $files[] = $file; } } } closedir($handle); return $files; }}
㈡ PHP怎么遍历一个文件夹下所有的文件,默认显示第一个内容。
在 php 语言里,列出一个文件夹下所有的文件,最简单的是使用 scandir 函数,示例如下:
<?php$dir='/tmp';$files1=scandir($dir);print_r($files1);?>
scandir 原型定义如下:
arrayscandir(string$directory[,int$sorting_order[,resource$context]])
第2个参数,可以将获取的文件列表按升、降序进行排序。
㈢ 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//脚本根目录define('S_ROOT',dirname(__FILE__).DIRECTORY_SEPARATOR);//递归查找搜索文件functionglob_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($filelistas$file){echo'目录'.dirname($file).'路径'.$file.'<br/>';}?><p>执行脚本结果类似下图</p><p></p>
㈤ 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怎样遍历远程文件夹下的文件
window是用的GB2312的编码,你的php文件应该用的是UTF-8,所以正如你写的那样,先要转换编码$dir=iconv("utf-8","gb2312",$dir);但你别忘了,你用的是UTF-8的编码,所以你第六行写错了,把GB2312转换为UTF-8搞倒了吧123456789101112131415<?phpfunction refresh($dir){ $dir=iconv("utf-8","gb2312",$dir); if ($headle=opendir($dir)){ while ($file=readdir($headle)){ $file=iconv("gb2312","utf-8",$file); if ($file!='.' && $file!='..'){ echo "文件".$file."在文件夹".$dir."下<br />"; } } closedir($headle); }}refresh("D:/AppServ/www/test");?>
㈦ php遍历文件夹获得所有文件名怎么办啊
/*filename:..:filetype:dirfilename:index.html:filetype:filefilename:.:filetype:dirfilename:index.php:filetype:filefilename:index.html~:filetype:filefilename:index.php~:filetype:file*/可能有的原因是你的目录$dir="/etc/php5/";不存在,检查一下;
㈧ php怎么遍历指定目录下的文件(可指定文件类
遍历目来录下文件,源首先获取该目录下的所有文件名。
$folder='./folder/';foreach(scandir($folder)AS$value){if($value=='.'OR$value=='..')continue;echo'文件名:'.$value."";}
㈨ 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遍历输出文件夹内的所有文件用递归算法
一般来说,类似这种遍历输出所有文件,大多采用递归算法,这样程序显得比较简洁,其实际执行效率来说,并不见得比其他方法更好。以下是示例: 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怎么遍历指定目录下的文件(可指定文件类