1. 程式人生 > 實用技巧 >php網頁版檔案瀏覽器

php網頁版檔案瀏覽器

主要函式是 glob() 構造的檔案瀏覽器,具體函式使用方法請移步 php 手冊。本程式是單頁面程式,因為程式簡單,所以用面向過程實現。要在下面下載兩個圖示在程式的同一級目錄,並命名為:dir.png 和 file.png。

<?php
    session_start(); //注意,此程式碼前不允許有任何輸出,包括空白字元
?>
<!DOCTYPE html>
<html>
<head>
<title>php網頁版檔案瀏覽器</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/popper.js/1.12.5/umd/popper.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
    <div class
="container"> <?php /* php網頁版檔案瀏覽器 因為超簡單,所以用面向過程實現。 本程式的關鍵函式是 glob() 請查閱 php 手冊 */ if(isset($_SESSION["dir"])){ $d = $_SESSION["dir"]; } if(isset($_GET["after"])){ $d = array_slice($d, 0, $_GET["after"]); $_SESSION["dir"] = $d; //print_r($d); } if(!isset($_GET["after"])){
if(!isset($_GET["front"])){ $d = explode('/' , __DIR__); $_SESSION["dir"] = $d; }else{ //檢查頁面是否有重新整理,重新整理時資料不寫入陣列和 session $pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && ($_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0'); if(!$pageWasRefreshed
) { array_push($d, $_GET["front"]); $_SESSION["dir"] = $d; } } } //print_r($d); //echo "<br>"; $i = 1; foreach($d as $dn){ $s .= "<a href='?after={$i}'>" . $dn . '</a>/'; $s1 .= $dn . '/'; $i++; } echo <<<EOT <div class="alert alert-success" style="word-wrap:break-word"> <strong>選擇目錄:</strong> {$s} </div> EOT; echo "<br>"; //這裡修改 * 號為 *.txt、*.php 等,可檢視指定字尾名的檔案 $dir = $s1 . '*'; $dirs = glob($dir); //陣列排序 sort($dirs); //先輸出目錄部分 foreach($dirs as $value){ if(is_dir($value)){ echo "<a href='?front=" . basename($value) . "'><img src='./dir.png' width='20px' />" . basename($value) . "</a><br>"; } } //再輸出檔案部分 foreach($dirs as $value){ if(is_file($value)){ echo "<img src='./file.png' width='20px' />" . basename($value) . "<br>"; } } ?> <div> </body> </html>

圖示檔案:

程式執行後的效果: