PHP 遍历文件夹 文件名称输出到数组中,高阶应用

  • 内容
  • 相关

代码如下: 留着备用

<?php 
//设定报错等级,如果是开源程序插件不需要设定 
error_reporting(E_ERROR | E_PARSE); 
//定义欲读取的目录路径,方便演示,本程序读取的是当前文件所在目录 
$path = '.'; //获取文件列表数组 
$files = ReadFolder($path); 
//处理文件列表数组 
foreach ($files as $value) { 
    //显示文件链接    
    echo '<a href="' . $value . '">' . $value . '</a>'; 
    //为方便查看,输出一个 br / 换行符 
    echo '<br />'; 
} 
/* 定义自定义函数 */ 
/** * 获取文件列表 * * 
    @param string  
    $dir  欲读取的目录路径 * 
    @param boolean $mode 0:读取全部;1:仅读取文件;2:仅读取目录 
    * @return array */ 
function ReadFolder($dir, $mode = 0) {
    //如果打开目录句柄失败,则输出空数组
    if (!$handle = @opendir($dir)) return array(); 
    //定义文件列表数组 $files = array(); 
    //遍历目录句柄中的条目 
    while (false !== ($file = @readdir($handle))) { 
        //跳过本目录以及上级目录 
        if ('.' === $file || '..' === $file) continue; 
        //是否仅读取目录 
        if ($mode === 2) { 
            if (isDir($dir . '/' . $file)) $files[] = $file; 
            //是否仅读取文件 
        } elseif ($mode === 1) { 
            if (isFile($dir . '/' . $file)) $files[] = $file; //读取全部 
        } else { $files[] = $file; } 
    } 
//关闭打开的目录句柄 @closedir($handle); 
//输出文件列表数组 
return $files; 
} 
/** * 判断输入是否为目录 
* * @param string $dir  
* @return boolean 
*/ 
function isDir($dir) { 
    return $dir ? is_dir($dir) : false; 
} 
/** * 判断输入是否为文件 
* * @param string $file * @return boolean 
*/ 
function isFile($file) { return $file ? is_file($file) : false; } 
?>

二:

<?php 
header("Content-type:text/html;charset=UTF-8"); 
$fname ='http://'.$_SERVER['SERVER_NAME'].$_SERVER["SCRIPT_NAME"]; 
//开始运行 
$path=isset($_GET['path'])?$_GET['path']:".";//目录 
echo "<h2>目录为粉红色</h2><br>\n"; 
tree($path); 
function tree($directory) { 
    $mydir=dir($directory);
    while($file=$mydir->read()){ 
    if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")) {  
        echo "<li>目录:<a href=\"?path=$directory/$file\" >$file/</a></li>\n";  
        //tree("$directory/$file"); 
        } else  
        echo "<li>文件:<a href=\"$fname$file\" >$file</a></li>\n"; 
    } 
    $mydir->close(); } 
?>

三:CMP播放器进化版

<?php 
header("Content-type:text/html;charset=UTF-8"); 
$path=isset($_GET['path'])?$_GET['path']:".";//目录,默认取当前目录,可以传参目录如path=./top 
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<list>\n"; 
tree($path); 
echo "</list>"; 
function tree($directory){
  $fname ='http://'.$_SERVER['SERVER_NAME'].'/';//.$_SERVER["SCRIPT_NAME"]; 
  $mydir=dir($directory); 
  while($file=$mydir->read()){ 
      if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")){ 
          echo "<m label=\"$file\">\n";
          tree("$directory/$file");
          echo "</m>\n"; 
       }else{
           echo "	<m type=\"\" src=\"$fname$directory/".urlencode($file)."\" label=\"$file\"/>\n"; 
        } 
   } 
   $mydir->close(); 
} 
?>


本文标签:

版权声明:若无特殊注明,本文皆为《鬼少》原创,转载请保留文章出处。

本文链接:PHP 遍历文件夹 文件名称输出到数组中,高阶应用 - http://tv1314.com/post-34.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

7条评论
  1. avatar

    何永旺 Lv.1 Chrome 31.0.1650.63 Chrome 31.0.1650.63 Windows 7 Windows 7 回复

    鬼少,能不能给个cmp代理示例,http://bbs.cenfun.com/thread-23833-1-1.html

    广东省广州市 中国联通骨干节点

    1. 鬼少 Chrome 45.0.2454.101 Chrome 45.0.2454.101 Windows 7 x64 Edition Windows 7 x64 Edition 回复

      事例不是写出来了吗

      广东省深圳市 电信

  2. avatar

    南航陈都灵 Lv.1 Firefox 29.0 Firefox 29.0 Windows 7 Windows 7 回复

    理想和现实总是有差距的,幸好还有差距,不然,谁还稀罕理想?

    湖北省随州市 移动

    1. avatar

      妹子惹人醉 Lv.1 Firefox 29.0 Firefox 29.0 Windows 7 Windows 7 回复

      让未来到来,让过去过去。

      湖北省随州市 移动

      00:00 / 00:00
      顺序播放