>  기사  >  백엔드 개발  >  PHP 파일 관리 및 기본 기능 구현

PHP 파일 관리 및 기본 기능 구현

迷茫
迷茫원래의
2017-03-26 10:06:221524검색

파일의 기본 동작

먼저 PHP 파일의 기본 동작을 살펴보겠습니다. 강력한 댓글을 확인해주세요

6c04bd5ca3fcae76e30b72ad730ca86d
<?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[&#39;DOCUMENT_ROOT&#39;];
//获取到服务器根路径

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/*"));
//取到这个文件夹里所有的文件,加后缀为条件

 ?>
5ab9f35e19680506252e0ba78b8fb1db-->29510c076c22247794d4e070df58ca5d36cc49f0c466276486e50c850b7e4956

전체 파일 작업:

<?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() 함수를 사용하는 방식의 구문 구조는 다음과 같습니다

리소스 fopen(string $filename,string $mode) 파일 이름은 대상 파일 이름이며, 원격 파일을 열려면 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 "<p class=&#39;item&#39; url=&#39;{$v}&#39;>{$name}</p>";
}?>

</body>

사진:

다음으로 폴더에 특수 표시를 제공합니다.

출력하기 전 폴더입니다. :

//从完整路径中取文件名
   $name = basename($v);   if(is_dir($v)){
       echo "<p class=&#39;item dir&#39; url=&#39;{$v}&#39;>{$name}</p>";
   }   else {
       echo "<p class=&#39;item&#39; url=&#39;{$v}&#39;>{$name}</p>";
   }

폴더라면 배경색만 바꿔주세요

사진 :

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";

            }

        });
    })</script>

处理页面:

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

这样就可以实现双击进入此文件夹:

3.返回上一级,找到上一级目录,写个p

$pname = dirname($fname);
echo "<p id=&#39;shang&#39; url=&#39;{$pname}&#39;>返回上一级</p>";

图:

写双击事件:

<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";
            }
        });
    })</script>

返回到文件目录后使其隐藏:

//上一级的目录$pname = dirname($fname);
if(realpath($fname)=="F:\\QQPCMgr\\WWW\\wenjian"){

}else {
    echo "<p id=&#39;shang&#39; url=&#39;{$pname}&#39;>返回上一级</p>";
}

这样的话当我返回到wenjian目录的时候,使其隐藏:

4.删除功能

在文件p里面加删除按钮

 echo "<p class=&#39;item&#39; url=&#39;{$v}&#39;>{$name}<input type=&#39;button&#39; value=&#39;删除&#39; url=&#39;{$v}&#39; class=&#39;sc&#39;/></p>";

来写按钮的点击事件:

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 "<p id=&#39;shang&#39; url=&#39;{$pname}&#39;>返回上一级</p>";
}//便利目录下的所有文件显示$arr = glob($fname."/*");foreach ($arr as $v)
{    //从完整路径中取文件名
   $name = basename($v);   if(is_dir($v)){       echo "<p class=&#39;item dir&#39; url=&#39;{$v}&#39;>{$name}</p>";
   }   else {       echo "<p class=&#39;item&#39; url=&#39;{$v}&#39;>{$name}
<input type=&#39;button&#39; value=&#39;删除&#39; url=&#39;{$v}&#39; class=&#39;sc&#39;/>
</p>";
   }
}?>
 

<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";

            }

        });
    })
    $("#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";

            }

        });
    })

        $(".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 파일 관리 및 기본 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.