溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

發(fā)布時間:2021-06-22 14:20:35 來源:億速云 閱讀:145 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹php如何實現(xiàn)文件管理與基礎(chǔ)功能操作,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

文件的基本操作

先來看一下PHP文件基礎(chǔ)操作,請看強大注釋

<body>
<?php
var_dump(filetype("./img/11.png"));
//判斷返回得是文件還是目錄,返回sile為文件,dir為目錄(文件夾)
var_dump(is_dir("./img/11.png"));
//判斷給的文件是不是一個目錄,目錄為ture,文件為false
var_dump(is_file("./img"));
//判斷是否為文件,同上
var_dump(date("Y-m-d H:i:s",fileatime("./img/11.png")));
//上次訪問時間
var_dump(date("Y-m-d H:i:s",filectime("./img/11.png")));
//創(chuàng)建時間
var_dump(date("Y-m-d H:i:s",filemtime("./img/11.png")));
//修改時間
var_dump(filesize("./img/11.png"));
//獲取文件大小
var_dump(file_exists("/QQPCMgr/www/wenjian/img/22.png"));
//在php里面根/則是磁盤
echo $_SERVER['DOCUMENT_ROOT'];
//獲取到服務(wù)器根路徑
echo basename("/QQPCMgr/www/wenjian/img/22.png");
//返回22.png帶后綴的文件名
echo basename("/QQPCMgr/www/wenjian/img/22.png",".png");
//扔上后綴之后只顯示文件名(獲取文件名)
echo dirname("/QQPCMgr/www/wenjian/img/22.png");
//返回的是不包含文件名的路徑(獲取文件名以上的)
var_dump(pathinfo("/QQPCMgr/www/wenjian/img/22.png"));
//這個獲取的很全面,都能獲取到
echo realpath("./img/11.png");
//真實路徑:可以把相對路徑轉(zhuǎn)換為絕對路徑
var_dump(glob("./ce/*"));
//取到這個文件夾里所有的文件,加后綴為條件
 ?>
<!--<img src="/wenjian/img/11.png" />-->
<!--在網(wǎng)頁里根/代表的是www目錄-->
</body>

文件整體操作:

<?php
//touch("./11.txt");
//創(chuàng)建文件
//copy("11.txt","./ce/11.txt");
//復(fù)制文件
//unlink("./11.txt");
//刪除文件
//echo file_get_contents("./ce/11.txt");本地
//echo file_get_contents("http://www.baidu.com");遠(yuǎn)程
//讀取文件所有內(nèi)容
//file_put_contents("./11.txt","Myshao");
//往文件里面存儲內(nèi)容
//readfile("./11.txt");
//讀取并輸出
//$arr = file("./shouye.php");
//var_dump($arr);
//讀取文件內(nèi)所有內(nèi)容,并扔到數(shù)組顯示
//$ff = fopen("./11.txt","a");
//打開文件資源,詳情見注1;
//echo fgetc($ff);
//讀取一個字符
//echo fgets($ff);
//讀取一行字符
//echo fread($ff,2);
//規(guī)定讀多長
//fwrite($ff,"shao");
//寫入內(nèi)容

注1:打開和讀取文件

php使用fopen()函數(shù)的方式,語法結(jié)構(gòu)如下

Resource fopen (string $filename,string $mode) Filename是目標(biāo)文件名,打開本地文件也可以打開遠(yuǎn)程文件,打開遠(yuǎn)程文件需要采用http://...形式,假如目標(biāo)文件在

ftp服務(wù)器上,則采用形式ftp://...。

參數(shù)mode是目標(biāo)文件打開形式,參數(shù)$mode是可以接收的模式。

文件打開方式表:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

目錄資源的打開與關(guān)閉:但凡有開就有關(guān),否則會影響到后面的刪除等操作;

<?php
$fname = "./ce/gf";
$d = opendir($fname);
//打開文件資源
while ($url = readdir($d))
{
 echo $fname."/".$url."<br/>";
// 僅讀取文件名,把路徑拼上=完整路徑
}
var_dump(glob("./*"));
closedir($d);
//關(guān)資源

以上就是一些基礎(chǔ)的語句了,來做點練習(xí):

例:返回一個文件夾下的所有文件數(shù)量;

如果想要計算出ajax目錄下有多少的文件,可以用下面封裝的方法shu()來遍歷目錄,可以計算出ce目錄下其他的文件夾里面的文件的總和,

<?php
function shu($url)
{
 $sl = 0;
 $arr = glob($url);
 //循環(huán)遍歷
 foreach($arr as $v)
 {
  //判斷是不是一個文件
  if(is_file($v))
  {
   //如果是一個文件+1
   $sl++;
  }
  else
  {
   $sl +=shu($v."/*");
  }
 }
 return $sl;
}
echo shu("./ce/*");
//最后給方法一個路徑進(jìn)行查找
?>

看一下輸出:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

再來一個!

例:刪除文件

<?php
$fname = "./ce/gf";
$d = opendir($fname);
//打開文件資源
while ($url = readdir($d))
{
 echo $fname."/".$url."<br/>";
// 僅讀取文件名,把路徑拼上=完整路徑
}
var_dump(glob("./*"));
closedir($d);
//關(guān)資源
//刪除文件夾(非空文件夾)
function shan($url)
{
// 清空文件夾
 $d = opendir($url);
// 打開
 while ($u = readdir($d))//$u現(xiàn)在是文件名
 {
//  排除...
  if($u!="." && $u!="..")
  {
   $fname = $url . "/" . $u;
   //完整帶路徑的文件名
   if (is_file($fname))//如果是一個文件
   {
    unlink($fname);
   } else //如果是一個文件夾
   {
    shan($fname);
   }
  }
 }
 closedir($d);
 //關(guān)閉
 rmdir($url);
}
shan("./122");
?>

這樣122目錄里面所有的東西,不管是文件夾還是文件都會被刪除;

實現(xiàn)文件管理功能

1.先把查看文件的功能做出來,讓他把所有的文件與文件夾啊顯示出來;

<body>
<?php
//定義文件目錄
$fname = "./ce";
//便利目錄下的所有文件顯示
$arr = glob($fname."/*");
foreach ($arr as $v)
{
 //從完整路徑中取文件名
 $name = basename($v);
 echo "<div class='item' url='{$v}'>{$name}</div>";
}
?>
</body>

圖:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

接下來給文件夾特殊顯示一下把:

輸出之前需要判斷,判斷是不是一個文件夾:

//從完整路徑中取文件名
 $name = basename($v);
 if(is_dir($v)){
  echo "<div class='item dir' url='{$v}'>{$name}</div>";
 }
 else {
  echo "<div class='item' url='{$v}'>{$name}</div>";
 }

如果是個文件夾,給他背景顏色改變一下就好啦

圖:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

2.給文件夾添加雙擊事件:

雙擊實現(xiàn)進(jìn)入這個目錄;

 js代碼:

<script>
 $(".dir").dblclick(function(){
  var url = $(this).attr("url");
  $.ajax({
   url:"chuli.php",
   data:{url:url},
   type:"POST",
   dataType:"TEXT",
   success:function(data)
   {
    window.location.href="wenwen.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;

   }

  });
 })
</script>

處理頁面:

<?php
session_start();
$url = $_POST["url"];
$_SESSION["fname"] = $url;

這樣就可以實現(xiàn)雙擊進(jìn)入此文件夾:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

3.返回上一級,找到上一級目錄,寫個div

$pname = dirname($fname);
echo "<div id='shang' url='{$pname}'>返回上一級</div>";

圖:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

寫雙擊事件:

<script>
 $("#shang").dblclick(function(){
  var url = $(this).attr("url");
  $.ajax({
   url:"chuli.php",
   data:{url:url},
   type:"POST",
   dataType:"TEXT",
   success:function(data)
   {
    window.location.href="wenwen.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
   }
  });
 })
</script>

返回到文件目錄后使其隱藏:

//上一級的目錄
$pname = dirname($fname);
if(realpath($fname)=="F:\\QQPCMgr\\WWW\\wenjian")
{}
else {
 echo "<div id='shang' url='{$pname}'>返回上一級</div>";
}

這樣的話當(dāng)我返回到wenjian目錄的時候,使其隱藏:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

4.刪除功能

在文件div里面加刪除按鈕:

 echo "<div class='item' url='{$v}'>{$name}
<input type='button' value='刪除' url='{$v}' class='sc'/>
</div>";

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

來寫按鈕的點擊事件:

js代碼:

$(".sc").click(function(){
   //確認(rèn)刪除提示
   var av = confirm("確定要刪除");
   if(av){
   var url = $(this).attr("url");
   $.ajax({
    url: "shan.php",
    data: {url: url},
    type: "POST",
    dataType: "TEXT",
    success: function (data) {
     window.location.href = "wenwen.php";
    }

   });
   }
  })

刪除的處理頁面:

<?php
$url = $_POST["url"];
unlink($url);

這樣完成后,當(dāng)我點擊刪除:

php如何實現(xiàn)文件管理與基礎(chǔ)功能操作

再點擊確定,即可刪除

總代碼:

管理查看頁面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>無標(biāo)題文檔</title>
 <script src="jquery-1.11.2.min.js"></script>
 <style>
  .item{
   width: 500px; height: 30px; border: 1px solid slateblue;
   background-color: aquamarine;
   line-height: 30px;
  }
  .dir{
   background-color: chocolate; color: aliceblue;
  }
  #shang{
   width: 500px; height: 30px; border: 1px solid slateblue;
   background-color: brown;color: aliceblue;
   line-height: 30px;
  }
 </style>
</head>
<body>
<?php
session_start();
//定義文件目錄
$fname = "./ce";
if(!empty($_SESSION["fname"]))
{
 //如果session里面的不為空
 $fname = $_SESSION["fname"];
}
//上一級的目錄
$pname = dirname($fname);
if(realpath($fname)=="F:\\QQPCMgr\\WWW\\wenjian")
{}
else {
 echo "<div id='shang' url='{$pname}'>返回上一級</div>";
}
//便利目錄下的所有文件顯示
$arr = glob($fname."/*");
foreach ($arr as $v)
{
 //從完整路徑中取文件名
 $name = basename($v);
 if(is_dir($v)){
  echo "<div class='item dir' url='{$v}'>{$name}</div>";
 }
 else {
  echo "<div class='item' url='{$v}'>{$name}
<input type='button' value='刪除' url='{$v}' class='sc'/>
</div>";
 }
}
?>
<script>
 $(".dir").dblclick(function(){
  var url = $(this).attr("url");
  $.ajax({
   url:"chuli.php",
   data:{url:url},
   type:"POST",
   dataType:"TEXT",
   success:function(data)
   {
    window.location.href="wenwen.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
   }
  });
 })
 $("#shang").dblclick(function(){
  var url = $(this).attr("url");
  $.ajax({
   url:"chuli.php",
   data:{url:url},
   type:"POST",
   dataType:"TEXT",
   success:function(data)
   {
    window.location.href="wenwen.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
   }
  });
 })
  $(".sc").click(function(){
   //確認(rèn)刪除提示
   var av = confirm("確定要刪除");
   if(av){
   var url = $(this).attr("url");
   $.ajax({
    url: "shan.php",
    data: {url: url},
    type: "POST",
    dataType: "TEXT",
    success: function (data) {
     window.location.href = "wenwen.php";
    }
   });
   }
  })
</script>
</body>
</html>

處理:

<?php
session_start();
$url = $_POST["url"];
$_SESSION["fname"] = $url;

刪除:

<?php
$url = $_POST["url"];
unlink($url);

以上是“php如何實現(xiàn)文件管理與基礎(chǔ)功能操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI