php获取文件夹html文件列表

我们首先需要了解几个函数

  • is_dir 检测是否为目录

  • opendir($dir) 函数函数打开目录句柄。

  • readdir() 函数返回目录中下一个文件的文件名。若成功则返回条目名称(文件名),失败则返回 FALSE。

  • scandir($dir) 函数返回指定目录中的文件和目录的数组。用法:

// 以升序排序 - 默认
$a = scandir($dir);
// 以降序排序
$b = scandir($dir,1);
  • closedir($dir)关闭参数dir所指的目录流

  • filemtime($file);//获取修改时间

来一个简单的

<?php
$dir = "/images/";// 打开目录,然后读取其内容if (is_dir($dir)){
  if ($dh = opendir($dir)){
    while (($file = readdir($dh)) !== false){
      echo "filename:" . $file . "<br>";
    }
    closedir($dh);
  }
}
?>

好了,接下来我们来实际操作下!

方法1:使用opendir 和 readdir来获取

缺陷是会获取上一级

image.png

<?php
$dir=dirname(__FILE__); //获取当前路径,或者你也可以指定
//$dir = "/images/";指定路径,需要是绝对路径
if(is_dir($dir)){//判断是否为目录
   if ($dh = opendir($dir)){//打开函数目录句柄
         while (($file = readdir($dh)) !== false){//判断下一个还有没有
         	$fmt = date("Y-m-d H:i:s",filemtime($file));//获取时间
            $aurl= "<a href=\"".$file."\">".$file."</a><br>";//获取连接
            echo $aurl;//输出
         }
   }
}
?>

方法2使用scandir

来看代码,把全部文件放入数组,然后进行循环输出

if (is_dir($dir)){//判断是否为目录
   $filesnames = scandir($dir);//返回指定目录中的文件和目录的数组
	  foreach ($filesnames as $name) {
	    $kuozhan=substr(strrchr($name, '.'), 1);//获取扩展名
	     if($kuozhan=='html'){//判断是否为html
	        $url="".$name;
	        $fmt = date("Y-m-d H:i:s",filemtime($file));//获取时间
	        $aurl= "<a href=\"".$url."\">".$url."</a><br>";
	        echo $aurl . "";
	    }
	 }
}


完整版,自己写的一个小项目

页面内专题太多,又不进数据库的,于是自己写了个代码列出文件夹内所有专题,并且进行命名

1、首先就是需要命名文件数组!

name.inc

bianmi,便秘
bianxue,便血
ganglie,肛裂

2、php把命名文件变成数组

function GetInfoArray($filename)
{
    $arrs = array();
    $dlist = file($filename);
    foreach($dlist as $d)
    {
        $d = trim($d);
        if($d!='')
        {
            list($dname, $info) = explode(',', $d);
            $arrs[$dname] = $info;
        }
    }
    return $arrs;
}
$a = GetInfoArray('name.inc');
//得到Array ( [bianmi] => 便秘 [bianxue] => 便血 [ganglie] => 肛裂 )

3、然后进行获取目录html方法,并进行命名输出,完整文件!

<?php
header("Content-type:text/html;charset=utf-8");

 session_start();
if(isset($_GET['logout'])){
    unset($_SESSION['logins']);
}
function ShowMsg($msg, $gourl, $onlymsg=0, $limittime=0)
{
     global $cfg_webname;
    if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';

    $htmlhead  = "<html>\r\n<head>\r\n<title>".$GLOBALS['cfg_webname']."</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\r\n<meta name=\"renderer\" content=\"webkit\">\r\n<meta http-equiv=\"Cache-Control\" content=\"no-siteapp\" />";
    $htmlhead.=" <meta name=\"viewport\" content=\"width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no\" />";
    $htmlhead.=" <link rel=\"stylesheet\" href=\"/plus/layui/css/layuixh.css\" media=\"all\"> <link rel=\"stylesheet\" href=\"/plus/layui/css/layui.css\" media=\"all\">";
    $htmlhead .= "<base target='_self'/>\r\n<style>div{line-height:160%;}body{ background:#333; min-height:100%;}*{margin:0;padding:0}.layui-fluid{position:relative;margin:0 auto;padding:15px 15px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-card-header .l{float:left}.layui-card-header .r{float:right}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.tc{text-align:center}</style></head>\r\n<body leftmargin='0' topmargin='0' bgcolor='#FFFFFF'>";
    $htmlhead .=(isset($GLOBALS['ucsynlogin']) ? $GLOBALS['ucsynlogin'] : '')."\r\n<center>\r\n<script>\r\n";
    $htmlfoot  = "</script>\r\n</center>\r\n</body>\r\n</html>\r\n";

    $litime = ($limittime==0 ? 1000 : $limittime);
    $func = '';

    if($gourl=='-1')
    {
        if($limittime==0) $litime = 5000;
        $gourl = "javascript:history.go(-1);";
    }

    if($gourl=='' || $onlymsg==1)
    {
        $msg = "<script>alert(\"".str_replace("\"","“",$msg)."\");</script>";
    }
    else
    {
        //当网址为:close::objname 时, 关闭父框架的id=objname元素
        if(preg_match('/close::/',$gourl))
        {
            $tgobj = trim(preg_replace('/close::/', '', $gourl));
            $gourl = 'javascript:;';
            $func .= "window.parent.document.getElementById('{$tgobj}').style.display='none';\r\n";
        }
        
        $func .= "      var pgo=0;
      function JumpUrl(){
        if(pgo==0){ location='$gourl'; pgo=1; }
      }\r\n";
        $rmsg = $func;
        $rmsg .= "document.write(\"<br /><div class='layui-tc layui-fluid'>";
        $rmsg .= "<div class='layui-card layui-layer-dialog'><div class='layui-card-header' style='overflow:hidden; white-space: nowrap;'>".$GLOBALS['cfg_webname']."</div>\");";
        $rmsg .= "document.write(\"<div class='layui-card-body tl'>\");\r\n";
        $rmsg .= "document.write(\"".str_replace("\"","“",$msg)."\");\r\n";
        $rmsg .= "document.write(\"";
        
        if($onlymsg==0)
        {
            if( $gourl != 'javascript:;' && $gourl != '')
            {
                $rmsg .= "<div class='layui-layer-btn layui-layer-btn-' style='text-align:center'><a class='layui-layer-btn0 layui-btn' href='{$gourl}'>确定</a>";
                $rmsg .= "</div></div><span class='layui-layer-setwin'><a class='layui-layer-ico layui-layer-close layui-layer-close1 ' href='{$gourl}'></a></span></div></div>\");\r\n";
                $rmsg .= "setTimeout('JumpUrl()',$litime);";
            }
            else
            {
                $rmsg .= "<br/></div>\");\r\n";
            }
        }
        else
        {
            $rmsg .= "<br/><br/></div>\");\r\n";
        }
        $msg  = $htmlhead.$rmsg.$htmlfoot;
    }
    echo $msg;
}

if(!isset($_SESSION['logins'])){
    if(isset($_POST['pwd'])){
        if($_POST['pwd'] == "123"){
            $_SESSION['logins'] = time();
           ShowMsg('成功登录,正在转向管理管理主页!',"index.php");
                    exit();
  }else{
    echo $password;
            echo "密码错误!<a href='index.php'>点击这里重新登录。</a>";
        }
      }else{
?>
<form action="index.php" method="post">
<input type="password" name="pwd" />
<input type="submit" value="登录" />
</form>
 
<?php
    }
}else{ 

    $dir=dirname(__FILE__); //获取当前路径,或者你也可以指定
//$dir = "/images/";指定路径,需要是绝对路径
/*
if (is_dir($dir)){//判断是否为目录
   if ($dh = opendir($dir)){//打开函数目录句柄
         while (($file = readdir($dh))!= false){//判断下一个还有没有
         
$fmt = date("Y-m-d H:i:s",filemtime($file));//获取时间
         
$filePath = $dir.$file;
            $aurl= "<a href=\"".$file."\">".$file."</a><br>";//获取连接
            echo $aurl;//输出
         }
         closedir($dh);
   }
}
*/
function GetInfoArray($filename)
{
    $arrs = array();
    $dlist = file($filename);
    foreach($dlist as $d)
    {
        $d = trim($d);
        if($d!='')
        {
            list($dname, $info) = explode(',', $d);
            $arrs[$dname] = $info;
        }
    }
    return $arrs;
}
$a = GetInfoArray('name.inc');

if (is_dir($dir)){//判断是否为目录
   $filesnames = scandir($dir);//返回指定目录中的文件和目录的数组
  foreach ($filesnames as $name) {
    $kuozhan=substr(strrchr($name, '.'), 1);//获取扩展名 strrchr是获取.在字符串中的位置,并返回从该位置到字符串结尾的所有字符
    $tit=explode(".",$name);//分离成数组
     if($kuozhan=='html'){//判断是否为html
        $url=$name;
        if(array_key_exists($tit[0],$a) != false){
$title=$a[$tit[0]];
        }else{
        
$title='未知';
        }
        $fmt = date("Y-m-d H:i:s",filemtime($name));//获取时间
        $aurl= $title."<a  target=\"_blank\" tag href=\"".$url."\">".$url."</a><br>";
        echo $aurl . "";
    }
 }
}
echo "<a href='index.php?logout=1'>点击这里退出登录</a>";
}
?>

效果图!

image.png

image.png

相关内容

发表评论

验证码:
点击我更换图片

最新评论