php文件列表
1. php读取目录下所有文件内容并显示
<?php
function printFile($filepath)
{
//substr(string,start,length)函数返回字符串的一部分;start规定在字符串的何处开始 ;length规定要返回的字符串长度。默认是直到字符串的结尾。
//strripos(string,find,start)查找 "php" 在字符串中最后一次出现的位置; find为规定要查找的字符;start可选。规定开始搜索的位置
//读取文件后缀名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判断是不是以txt结尾并且是文件
#if ($filetype == "txt" && is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."内容如下:"."<br/>";
$fp = fopen ( $filepath, "r" );//打开文件
#while (! feof ( $f )) //一直输出直到文件结尾
$i = 1;
while ($i < 10)
{
$line = fgets ( $fp );
echo $line."<br/>";
$i = $i +1;
}
fclose($fp);
}
}
(此处空一行)
function readFileRecursive($filepath)
{
if (is_dir ( $filepath )) //判断是不是目录
{
$dirhandle = opendir ( $filepath );//打开文件夹的句柄
if ($dirhandle)
{
//判断是不是有子文件或者文件夹
while ( ($filename = readdir ( $dirhandle ))!= false )
{
if ($filename == "." or $filename == "..")
{
//echo "目录为“.”或“..”"."<br/>";
continue;
}
//判断是否为目录,如果为目录递归调用函数,否则直接读取打印文件
if(is_dir ($filepath . "/" . $filename ))
{
readFileRecursive($filepath . "/" . $filename);
}
else
{
//打印文件
printFile($filepath . "/" . $filename);
echo "<br/>";
}
}
closedir ( $dirhandle );
}
}
else
{
printFile($filepath . "/" . $filename);
return;
}
}
(此处空一行)
header("content-type:text/html;charset=utf-8");
#echo "Hello World"."<br/>";
$filepath = "C:/phpStudy/PHPTutorial/WWW/test/results"; //想要读取的目录
readFileRecursive($filepath )
?>
(1)php文件列表扩展阅读:
php还可以读取文件夹下所有图片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要读取的文件夹
(此处空一行)
$url = '/data/upload/admin/20170517/'; //图片所存在的目录
(此处空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此处空一行)
// print_r($filesnames);exit;
//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames
(此处空一行)
$www = 'http://www.***.com/'; //域名
(此处空一行)
foreach ($filesnames as $name) {
$aurl= "<img width='100' height='100' src='".$www.$url.$name."' alt = '".$name."'>"; //图片
echo $aurl . "<br/>"; //输出他
2. php如何获取目录下所有文件名
<?php
functionfilesinfo($path){
//检查路径合法性
if(!is_dir($path))returnfalse;//不合法
//用系统函数获得文件名数组
$files=scandir($path);
//定义静态变量记录调用次数
static$count=-1;
//遍历数组
foreach($filesas$file){
//如果是'.'或'..'文件,跳过当次循环
if($file=='.'||$file=='..')continue;
//将文件信息存入数组
$arr[]=iconv('gbk','utf-8',$file);
}
//每次调用,次数加1
$count+=1;
//根据调用次数返回第N个结果
return$arr[$count];
}
//第1次调用,./替换成你自己的目录路径
echofilesinfo('./').'</br>';
//第2次调用
echofilesinfo('./').'</br>';
//第3次调用
echofilesinfo('./').'</br>';
?>
3. php如何读取文件列表并生成一个静态页面
<html>
<head>
</head>
<body>
<?php
if($dir=opendir("file")){
while(false!==$item=readdir($dir)){
if($item!='.'&&$item!='..'){
echo"<ahref='file/".$item."'>".$item."</a><br/>";
}
}
}
?>
</body>
</html>
4. PHP列出目录中的目录和文件的几种方法
<?php
/**
*PHP中列出目录中的目录和文件的几种方法
*/
//兼容PHP4和PHP5的写法
functiongetFileList($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中的简单方法
functiongetFileList2($directory){
$files=array();
if(is_dir($directory)){
if($files=scandir($directory)){
$files=array_slice($files,2);
}
}
return$files;
}
//使用PHP5面向对象的写法
functiongetFileList3($directory){
$files=array();
try{
$dir=newDirectoryIterator($directory);
}catch(Exception$e){
thrownewException($directory.'isnotreadable');
}
foreach($diras$file){
if($file->isDot())continue;
$files[]=$file->getFileName();
}
return$files;
}
//测试代码
$dir=dirname(__FILE__);
var_mp(getFileList($dir));
?>
5. 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);
}
?>
代码中需要提示的是:
如果是运行于互联网上,需要考虑文件的访问安全性。
运行截图:
6. PHP 列出当前目录下所有文件(自身别列出来)
<?php
$d=dir(".");
echo $d->path.$e;
while(false !== ($e= $d->read())) {
echo "<a href=$e target=_blank >$e</a>"."<br>";
}
$d->close();
?>
7. PHP获取文件夹下面html文件列表
<?php
$dir = "."; //目录
filelist($dir);
function filelist($dir){
$list = scandir($dir);
foreach($list as $file){//遍历
$path=$dir."/".$file;
if(is_dir($path) && $file!="." &&$file!=".."){ //判断是否是路径
filelist($path);
}else if(extend($file) == "html") {
echo $file."\t地址:\t".$path."\t<a href=$path>修改|删除</a><br>";
}
}
}
//返回文件类型
function extend($file_name)
{
$extend =explode("." , $file_name);
$va=count($extend)-1;
return $extend[$va];
}
?>
8. php列出目录下所有文件(包括子目录)
<?php
/**
*Goofy2011-11-30
*getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样
*/
//获取文件目录列表,该方法返回数组
functiongetDir($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;
}
//获取文件列表
functiongetFile($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")……
?>
9. 自己写个php文件,列出单个目录文件列表.(和没有index文件时一模一样的那样。)
我2002年写过一个文件实现这样的功能,直接粘贴如下,你试试看能否可用:
<html><head>
<script language=javascript src=/style.js></script>
<script language=javascript>
var a_href=new Array();
var a_name=new Array();
var a_size=new Array();
var a_time=new Array();
var tmp_href='';
var tmp_name='';
var tmp_size='';
var tmp_time='';
var i,j,k,sorti;
<?php
$base_dir=dirname($_SERVER["SCRIPT_FILENAME"]);
$base_len=strlen($base_dir)+1;
if ($_SERVER["QUERY_STRING"] == '') $real_dir=$base_dir;
else $real_dir=$base_dir.'/'.$_SERVER[QUERY_STRING];
$real_dir=strtr($real_dir,'\\','/');
if (substr($real_dir,-1)!='\\' && substr($real_dir,-1)!='/') $real_dir .= '/';
$short_dir=substr($real_dir,$base_len);
//while ($short_dir{0}=='/') $short_dir=substr($short_dir,1);
while (substr($short_dir,-1)=='/') $short_dir=substr($short_dir,0,strlen($short_dir)-1);
//if ($short_dir!=''){
// if (strrchr($short_dir,'/')) $up_dir=substr($short_dir,0,strlen($short_dir)-strlen(strrchr($short_dir,'/')));
// else $up_dir='';
//}
echo "//base_dir=$base_dir\treal_dir=$real_dir\tshort_dir=$short_dir\n";
if ($dir = @opendir($real_dir)) {
$i=0;
while (($file_name = readdir($dir)) !== false) if ($file_name!='.' && $file_name!='..' && substr($file_name,-1)!='~') {
$short_file=$short_dir.'/'.$file_name;
$file_path=$real_dir.$file_name;
if (is_dir($file_path)) {
$size='<DIR> ';
$bgcolor='style="background-color:#aaffaa"';
if ($file_name == '..' ) {$href="$PHP_SELF?$up_dir"; $file_name="<上级目录>";}
else $href="$PHP_SELF?$short_file";
}else {
$size=sprintf("%10d",filesize($file_path));
$bgcolor='';
$href=dirname($PHP_SELF).$short_file;
}
$time=date('Y-m-d H:i:s',filemtime($file_path));
echo "a_href[$i]='$href';a_size[$i]='$size';a_time[$i]='$time';a_name[$i]='$file_name';\n";
$i++;
}
echo "var iFileCount=$i;\n";
?>
</script></head>
<BODY BGCOLOR="#FFFFFF" background="/media/wall.jpg">
<div id=body_id>
字体选择:
<button onclick=body_id.className='14pt' class=14pt>大</button>
<button onclick=body_id.className='12pt' class=12pt>中</button>
<button onclick=body_id.className='9pt' class=9pt>小</button>
<script language=javascript>
k=0;
for (i=0;i<iFileCount;i++){
if(a_size[i].substring(0,1)=='<'){
if (i!=k){
tmp_href=a_href[i]; tmp_name=a_name[i]; tmp_size=a_size[i]; tmp_time=a_time[i];
a_href[i]=a_href[k];a_name[i]=a_name[k];a_size[i]=a_size[k];a_time[i]=a_time[k];
a_href[k]=tmp_href; a_name[k]=tmp_name; a_size[k]=tmp_size; a_time[k]=tmp_time;
}
k++;
}
}
if(k<iFileCount && a_size[k].substring(0,1)=='<')k++;
sorti=k;
re = / /g;
function do_sort(x,n,m){//对数组[n,m)按 x 方式排序
for (i=n;i<m;i++){
k=i;
for (j=i+1;j<m;j++){
if (x=='NA' && a_name[k]>a_name[j] ||
x=='ND' && a_name[k]<a_name[j] ||
x=='SA' && a_size[k]>a_size[j] ||
x=='SD' && a_size[k]<a_size[j] ||
x=='TA' && a_time[k]>a_time[j] ||
x=='TD' && a_time[k]<a_time[j]){k=j;}
}
if (i!=k){
tmp_href=a_href[i]; tmp_name=a_name[i]; tmp_size=a_size[i]; tmp_time=a_time[i];
a_href[i]=a_href[k];a_name[i]=a_name[k];a_size[i]=a_size[k];a_time[i]=a_time[k];
a_href[k]=tmp_href; a_name[k]=tmp_name; a_size[k]=tmp_size; a_time[k]=tmp_time;
}
}
}
function sort_list(x){
if (sorti>1)do_sort(x,0,sorti);
if (sorti<iFileCount)do_sort(x,sorti,iFileCount);
for (i=0;i<iFileCount;i++){
document.all.item("FileList")[i].innerText=a_size[i].replace(re,' ')+" "+a_time[i]+" "+a_name[i];
document.all.item("FileList")[i].href=a_href[i];
}
}
</script>
<?php
if (file_exists($real_dir.'header')) {
echo '<pre>';
readfile($real_dir.'header');
echo '</pre><hr>';
}
echo "服务器 $_SERVER[SERVER_NAME] 的 $short_dir 目录下面的文件清单:<button onclick=history.back()>回退</button> <button onclick=location.href=\"$PHP_SELF?$up_dir\">上级</button><br>".
"长度<button onclick='javascript:sort_list(\"SA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"SD\");' class=9pt>↓</button> 更新时间<button onclick='javascript:sort_list(\"TA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"TD\");' class=9pt>↓</button> 文件名<button onclick='javascript:sort_list(\"NA\");' class=9pt>↑</button><button onclick='javascript:sort_list(\"ND\");' class=9pt>↓</button><br>\n";
?>
<script language=javascript>
var szText='';
re2=/</g;
for (i=0;i<iFileCount;i++){
szText=a_size[i].replace(re,' ');
szText=szText.replace(re2,'<');
document.write("<nobr><a href='",a_href[i],"' id='FileList'>",szText," ",a_time[i]," ",a_name[i],"</a></nobr><br>");
}
</script>
<?php
closedir($dir);
if (file_exists($real_dir.'readme.txt')) {
echo '<hr><pre>';
readfile($real_dir.'readme.txt');
echo '</pre>';
}
if (file_exists($real_dir.'readme')) {
echo '<hr><pre>';
readfile($real_dir.'readme');
echo '</pre>';
}
if (file_exists($real_dir.'readme.htm')) {
echo '<hr>';
readfile($real_dir.'readme.htm');
}
if (file_exists($real_dir.'readme.html')) {
echo '<hr>';
readfile($real_dir.'readme.html');
}
}
?></div></body></html>