我们首先需要了解几个函数
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来获取
缺陷是会获取上一级
<?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>"; } ?>
效果图!