很多站长朋友们都不太清楚php列举文件目录,今天小编就来给大家整理php列举文件目录,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php列出目录下所有文件(包括子目录) 2、 php怎么遍历指定目录下的文件(可指定文件类 3、 php列举目录和文件 4、 PHP列出目录中的目录和文件的几种方法 5、 php列出目录所有文件名 6、 PHP如何读出当前目录下所有文件? php列出目录下所有文件(包括子目录)<?php
?
/**
?*?Goofy?2011-11-30
?*?getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样
?*/
?
//获取文件目录列表,该方法返回数组
function?getDir($dir)?{
????$dirArray[]=NULL;
????if?(false?!=?($handle?=?opendir?(?$dir?)))?{
????????$i=0;
????????while?(?false?!==?($file?=?readdir?(?$handle?))?)?{
????????????//去掉"“.”、“..”以及带“.xxx”后缀的文件
????????????if?($file?!=?"."??$file?!=?".."!strpos($file,"."))?{
????????????????$dirArray[$i]=$file;
????????????????$i++;
????????????}
????????}
????????//关闭句柄
????????closedir?(?$handle?);
????}
????return?$dirArray;
}
?
//获取文件列表
function?getFile($dir)?{
????$fileArray[]=NULL;
????if?(false?!=?($handle?=?opendir?(?$dir?)))?{
????????$i=0;
????????while?(?false?!==?($file?=?readdir?(?$handle?))?)?{
????????????//去掉"“.”、“..”以及带“.xxx”后缀的文件
????????????if?($file?!=?"."??$file?!=?".."strpos($file,"."))?{
????????????????$fileArray[$i]="./imageroot/current/".$file;
????????????????if($i==100){
????????????????????break;
????????????????}
????????????????$i++;
????????????}
????????}
????????//关闭句柄
????????closedir?(?$handle?);
????}
????return?$fileArray;
}
?
//调用方法getDir("./dir")……
?>
php怎么遍历指定目录下的文件(可指定文件类遍历目录下文件,首先获取该目录下的所有文件名。
$folder?=?'./folder/';
foreach?(scandir($folder)?AS?$value)?{
????if?($value?==?'.'?OR?$value?==?'..')?continue;
????echo?'文件名?:?'?.?$value?.?"\n";
}
php列举目录和文件<?php
$d=dir(".");
echo $d->path.$e;
while(false !== ($e= $d->read())) {
echo "<a href=$e target=_blank >$e</a>"."<br>";
}
$d->close();
?>
PHP列出目录中的目录和文件的几种方法<?php????????
/**??????
*?PHP中列出目录中的目录和文件的几种方法??????
*/???????
//兼容PHP4和PHP5的写法????????
function?getFileList($directory)?{????????
????$files?=?array();????????
????if(is_dir($directory))?{????????
????????if($dh?=?opendir($directory))?{????????
????????????while(($file?=?readdir($dh))?!==?false)?{????????
????????????????if($file?!=?'.'??$file?!=?'..')?{????????
????????????????????$files[]?=?$file;????????
????????????????}????????
????????????}????
????????????closedir($dh);????????
????????}????????
????}????????
????return?$files;????????
}????????
???????
//PHP5中的简单方法????????
function?getFileList2($directory)?{????????
????$files?=?array();????????
????if(is_dir($directory))?{????????
????????if($files?=?scandir($directory))?{????????
????????????$files?=?array_slice($files,2);????????
????????}????????
????}????????
????return?$files;????????
}????????
???????
//使用PHP5面向对象的写法????????
function?getFileList3($directory)?{????????
????$files?=?array();????????
????try?{????????
????????$dir?=?new?DirectoryIterator($directory);????????
????}?catch?(Exception?$e)?{????????
????????throw?new?Exception($directory?.?'?is?not?readable');????????
????}????????
????foreach($dir?as?$file)?{????????
????????if($file->isDot())?continue;????????
????????$files[]?=?$file->getFileName();????????
????}????????
????return?$files;????????
}????????
???????
//测试代码????????
$dir?=?dirname(__FILE__);????????
var_dump(getFileList($dir));????????
?>
php列出目录所有文件名php.ini
<?php
/*
Start Web Settings.
*/
define("TITLE","网站标题");
//Another method to define a constant.
//const TITLE = "网站标题";
//Start Web Settings End.
/*
Start MySQL Settings.
*/
$MySQL_HOST = "localhost";
$MySQL_PORT = "3306";
$MySQL_USER = "root";
$MySQL_PASSWORD = "";
$MySQL_DBNAME = "test";
//$MySQL = new pdo("mysql:dbname=".$MySQL_DBNAME.";host=".$MySQL_HOST,$MySQL_USER,$MySQL_PASSWORD);
//Start MySQL Settings End.
/*
Start Classes Settings.
*/
class Show_Files {
//获取绝对路径,未完善
function tr_directory($path_ = "/",$pre_path = "") {
if(strlen($pre_path) == 0){
$pre_path = getcwd();
}
if(is_dir($pre_path)){
if(is_dir($path_)){
$path = $path_;
}
else{
$path = $path_;
}
}
return $pre_path.$path_;
closedir($handle);
}
//获取路径中的所有文件名称,可排除部分类型的文件
function get_files($path = "./",$nofile = array()){
$source = scandir($path);
$files = array();
$out_ = array();
foreach($source as $file){
if(is_file($file)){
$files[] .= $file;
}
}
$out_ = preg_replace($nofile,"",$files);
$out = array();
foreach($out_ as $out_tmp){
if(strlen($out_tmp)>0){
$out[] .= $out_tmp;
}
}
return $out;
closedir($handle);
}
//获取路径中的所有目录名称
function get_dirs($path = "./",$nodir = array()){
$source = scandir($path);
$dirs = array();
foreach($source as $dir){
if(is_dir($dir)){
if(count($nodir) > 0){
foreach($nodir as $no_dir){
if(!preg_match($no_dir,$dir)){
$dirs[] .= $dir;
}
}
}
else{
$dirs[] .= $dir;
}
}
}
$dirs = preg_replace($nodir,"",$dirs);
$dirs_out = array();
foreach($dirs as $dir_tmp){
if(strlen($dir_tmp)>0){
$dirs_out[] .= $dir_tmp;
}
}
return $dirs_out;
closedir($handle);
}
function get_alias($files=array("/etc/apache2/apache2.conf","/etc/apache2/httpd.conf","/etc/apache2/sites-enabled/000-default","/etc/apache2/sites-enabled/000-default")){
$alias = array('name'=>array(),'dir'=>array(),'file'=>array());
foreach($files as $alias_file){
$res = shell_exec("cat ".$alias_file." | grep Alias");
$res = explode("\n",$res);
//去掉行首空白和tab符
foreach($res as $res){
if(strlen($res)>0){
$res = trim($res);
$res = explode(" ",$res);
$alias['file'][] .= $alias_file;
$alias['name'][] .= $res[1];
$alias['dir'][] .= $res[2];
}
}
}
return $alias;
}
}
//Start Classes Settings End.
?>
index.php
<?php
include_once("./ini.php");
?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "">
<html lang="en" xml:lang="en">
<head>
<title><?php echo TITLE." - 首页"; ?></title>
<meta http-equiv="Content-Type" content="txt/html; charset=utf-8" />
<style type="text/css">
html{
background: #ddd;
}
body {
margin: 1em 10%;
padding: 1em 3em;
font: 80%/1.4 tahoma, arial, helvetica, lucida sans, sans-serif;
border: 1px solid #999;
background: #eee;
position: relative;
}
strong {
margin: 0.8em 0 0 0;
}
</style>
<link rel="shortcut icon" href="index.php?img=favicon" type="./image/ico" />
</head>
<body>
<?php
?>
<div>
<strong align="center">站点导航</strong>
</div>
<div>
<?php
$f = new Show_Files;
//列出可访问目录及该目录下一级目录和文件
$dir = $f -> tr_directory("/");
echo "<pre>";
$dirs = $f -> get_dirs($dir,array("/^\./"));
echo "<p><span style=\"font-size:14px;font-weight:bold\">目录</span>(已略去隐藏目录)</p>";
foreach($dirs as $dirs){
echo "<p><a href=\"".$dirs."\">".$dirs."</a></p>";
}
//列出Alias配置的列表
echo "<p><span style=\"font-size:14px;font-weight:bold\">Alias</span></p>";
$alias_file = array("/etc/apache2/apache2.conf","/etc/apache2/httpd.conf","/etc/apache2/sites-enabled/000-default");
$alias = $f -> get_alias($alias_file);
foreach($alias['name'] as $alia){
echo "<a href=\"".$alia."\">".$alia."</a>\n";
}
//列出可访问文件
echo "<p><span style=\"font-size:14px;font-weight:bold\">文件</span>(已略去隐藏文件、备份文件、配置文件)</p>";
$files = $f -> get_files($dir,array("/(.*)\.bak$/","/(.*)\~$/","/(.*)ini.php$/","/^\.(.*)/"));
foreach($files as $files){
echo "<a href=\"".$files."\">".$files."</a>\n";
}
echo "</pre>";
?>
</div>
</body>
</html>
自己写的提供出来看看,感兴趣的朋友可以一起讨论:haoyihuan@qq测试数据
PHP如何读出当前目录下所有文件?一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:\x0d\x0a复制代码 代码如下:$dir="./caxa/";\x0d\x0a$file=scandir($dir);\x0d\x0aprint_r($file);\x0d\x0a稍微复杂点的,来自于php手册:\x0d\x0a复制代码 代码如下:$dir = "/etc/php5/";\x0d\x0a// Open a known directory, and proceed to read its contents\x0d\x0aif (is_dir($dir)) {\x0d\x0aif ($dh = opendir($dir)) {\x0d\x0awhile (($file = readdir($dh)) !== false) {\x0d\x0aecho "filename: $file : filetype: " . filetype($dir . $file) . "\n";\x0d\x0a} closedir($dh);\x0d\x0a}\x0d\x0a}\x0d\x0a这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用$data的地方,如下所示:\x0d\x0a复制代码 代码如下:function searchDir($path,$data){\x0d\x0aif(is_dir($path)){\x0d\x0a$dp=dir($path);\x0d\x0awhile($file=$dp->read()){\x0d\x0aif($file!='.' $file!='..'){\x0d\x0asearchDir($path.'/'.$file,$data);\x0d\x0a}\x0d\x0a}\x0d\x0a$dp->close();\x0d\x0a}\x0d\x0aif(is_file($path)){\x0d\x0a$data[]=$path;\x0d\x0a}\x0d\x0a}\x0d\x0afunction getDir($dir){\x0d\x0a$data=array();\x0d\x0asearchDir($dir,$data);\x0d\x0areturn $data;\x0d\x0a}\x0d\x0aprint_r(getDir('.'));\x0d\x0a希望本文所述对大家的PHP程序设计有所帮助。
关于php列举文件目录的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php列举文件目录 php列出当前目录文件的详细内容...