您好,登錄后才能下訂單哦!
這篇文章主要介紹php如何實現文件管理與基礎功能操作,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
文件的基本操作
先來看一下PHP文件基礎操作,請看強大注釋
<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"))); //創建時間 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']; //獲取到服務器根路徑 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"); //真實路徑:可以把相對路徑轉換為絕對路徑 var_dump(glob("./ce/*")); //取到這個文件夾里所有的文件,加后綴為條件 ?> <!--<img src="/wenjian/img/11.png" />--> <!--在網頁里根/代表的是www目錄--> </body>
文件整體操作:
<?php //touch("./11.txt"); //創建文件 //copy("11.txt","./ce/11.txt"); //復制文件 //unlink("./11.txt"); //刪除文件 //echo file_get_contents("./ce/11.txt");本地 //echo file_get_contents("http://www.baidu.com");遠程 //讀取文件所有內容 //file_put_contents("./11.txt","Myshao"); //往文件里面存儲內容 //readfile("./11.txt"); //讀取并輸出 //$arr = file("./shouye.php"); //var_dump($arr); //讀取文件內所有內容,并扔到數組顯示 //$ff = fopen("./11.txt","a"); //打開文件資源,詳情見注1; //echo fgetc($ff); //讀取一個字符 //echo fgets($ff); //讀取一行字符 //echo fread($ff,2); //規定讀多長 //fwrite($ff,"shao"); //寫入內容
注1:打開和讀取文件
php使用fopen()函數的方式,語法結構如下
Resource fopen (string $filename,string $mode)
Filename是目標文件名,打開本地文件也可以打開遠程文件,打開遠程文件需要采用http://...形式,假如目標文件在
ftp服務器上,則采用形式ftp://...。
參數mode是目標文件打開形式,參數$mode是可以接收的模式。
文件打開方式表:
目錄資源的打開與關閉:但凡有開就有關,否則會影響到后面的刪除等操作;
<?php $fname = "./ce/gf"; $d = opendir($fname); //打開文件資源 while ($url = readdir($d)) { echo $fname."/".$url."<br/>"; // 僅讀取文件名,把路徑拼上=完整路徑 } var_dump(glob("./*")); closedir($d); //關資源
以上就是一些基礎的語句了,來做點練習:
例:返回一個文件夾下的所有文件數量;
如果想要計算出ajax目錄下有多少的文件,可以用下面封裝的方法shu()來遍歷目錄,可以計算出ce目錄下其他的文件夾里面的文件的總和,
<?php function shu($url) { $sl = 0; $arr = glob($url); //循環遍歷 foreach($arr as $v) { //判斷是不是一個文件 if(is_file($v)) { //如果是一個文件+1 $sl++; } else { $sl +=shu($v."/*"); } } return $sl; } echo shu("./ce/*"); //最后給方法一個路徑進行查找 ?>
看一下輸出:
再來一個!
例:刪除文件
<?php $fname = "./ce/gf"; $d = opendir($fname); //打開文件資源 while ($url = readdir($d)) { echo $fname."/".$url."<br/>"; // 僅讀取文件名,把路徑拼上=完整路徑 } var_dump(glob("./*")); closedir($d); //關資源 //刪除文件夾(非空文件夾) function shan($url) { // 清空文件夾 $d = opendir($url); // 打開 while ($u = readdir($d))//$u現在是文件名 { // 排除... if($u!="." && $u!="..") { $fname = $url . "/" . $u; //完整帶路徑的文件名 if (is_file($fname))//如果是一個文件 { unlink($fname); } else //如果是一個文件夾 { shan($fname); } } } closedir($d); //關閉 rmdir($url); } shan("./122"); ?>
這樣122目錄里面所有的東西,不管是文件夾還是文件都會被刪除;
實現文件管理功能
1.先把查看文件的功能做出來,讓他把所有的文件與文件夾啊顯示出來;
<body> <?php //定義文件目錄 $fname = "./ce"; //便利目錄下的所有文件顯示 $arr = glob($fname."/*"); foreach ($arr as $v) { //從完整路徑中取文件名 $name = basename($v); echo "<div class='item' url='{$v}'>{$name}</div>"; } ?> </body>
圖:
接下來給文件夾特殊顯示一下把:
輸出之前需要判斷,判斷是不是一個文件夾:
//從完整路徑中取文件名 $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>"; }
如果是個文件夾,給他背景顏色改變一下就好啦
圖:
2.給文件夾添加雙擊事件:
雙擊實現進入這個目錄;
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;
這樣就可以實現雙擊進入此文件夾:
3.返回上一級,找到上一級目錄,寫個div
$pname = dirname($fname); echo "<div id='shang' url='{$pname}'>返回上一級</div>";
圖:
寫雙擊事件:
<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>"; }
這樣的話當我返回到wenjian目錄的時候,使其隱藏:
4.刪除功能
在文件div里面加刪除按鈕:
echo "<div class='item' url='{$v}'>{$name} <input type='button' value='刪除' url='{$v}' class='sc'/> </div>";
來寫按鈕的點擊事件:
js代碼:
$(".sc").click(function(){ //確認刪除提示 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);
這樣完成后,當我點擊刪除:
再點擊確定,即可刪除
總代碼:
管理查看頁面:
<!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>無標題文檔</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(){ //確認刪除提示 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如何實現文件管理與基礎功能操作”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。