php实现文件管理与基础功能操作
author:一佰互联 2019-04-26   click:149

文件的基本操作

先来看一下PHP文件基础操作,请看强大注释

<body><?phpvar_dump(filetype("./img/11.png"));//判断返回得是文件还是目录,返回sile为文件,dir为目录(文件夹)var_dump(is_dir("./img/11.png"));//判断给的文件是不是一个目录,目录为ture,文件为falsevar_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目录下其他的文件夹里面的文件的总和,

<?phpfunction 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>

处理页面:

<?phpsession_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><?phpsession_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>

处理:

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

删除:

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

以上所述是小编给大家介绍的php实现文件管理与基础功能操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网页设计网站的支持!