文件的基本操作
先来看一下php文件基础操作,请看强大注释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<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> |
文件整体操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?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是可以接收的模式。
文件打开方式表:
目录资源的打开与关闭:但凡有开就有关,否则会影响到后面的删除等操作;
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $fname = "./ce/gf" ; $d = opendir( $fname ); //打开文件资源 while ( $url = readdir( $d )) { echo $fname . "/" . $url . "<br/>" ; // 仅读取文件名,把路径拼上=完整路径 } var_dump( glob ( "./*" )); closedir ( $d ); //关资源 |
以上就是一些基础的语句了,来做点练习:
例:返回一个文件夹下的所有文件数量;
如果想要计算出ajax目录下有多少的文件,可以用下面封装的方法shu()来遍历目录,可以计算出ce目录下其他的文件夹里面的文件的总和,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?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/*" ); //最后给方法一个路径进行查找 ?> |
看一下输出:
再来一个!
例:删除文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?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.先把查看文件的功能做出来,让他把所有的文件与文件夹啊显示出来;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<body> <?php //定义文件目录 $fname = "./ce" ; //便利目录下的所有文件显示 $arr = glob ( $fname . "/*" ); foreach ( $arr as $v ) { //从完整路径中取文件名 $name = basename ( $v ); echo "<div class='item' url='{$v}'>{$name}</div>" ; } ?> </body> |
图:
接下来给文件夹特殊显示一下把:
输出之前需要判断,判断是不是一个文件夹:
1
2
3
4
5
6
7
8
|
//从完整路径中取文件名 $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代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<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> |
处理页面:
1
2
3
4
|
<?php session_start(); $url = $_post [ "url" ]; $_session [ "fname" ] = $url ; |
这样就可以实现双击进入此文件夹:
3.返回上一级,找到上一级目录,写个div
1
2
|
$pname = dirname( $fname ); echo "<div id='shang' url='{$pname}'>返回上一级</div>" ; |
图:
写双击事件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<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> |
返回到文件目录后使其隐藏:
1
2
3
4
5
6
7
|
//上一级的目录 $pname = dirname( $fname ); if ( realpath ( $fname )== "f:\\qqpcmgr\\www\\wenjian" ) {} else { echo "<div id='shang' url='{$pname}'>返回上一级</div>" ; } |
这样的话当我返回到wenjian目录的时候,使其隐藏:
4.删除功能
在文件div里面加删除按钮:
1
2
3
|
echo "<div class = 'item' url= '{$v}' >{ $name } <input type= 'button' value= '删除' url= '{$v}' class = 'sc' /> </div>"; |
来写按钮的点击事件:
js代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$( ".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" ; } }); } }) |
删除的处理页面:
1
2
3
|
<?php $url = $_post [ "url" ]; unlink( $url ); |
这样完成后,当我点击删除:
再点击确定,即可删除
总代码:
管理查看页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<!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> |
处理:
1
2
3
4
|
<?php session_start(); $url = $_post [ "url" ]; $_session [ "fname" ] = $url ; |
删除:
1
2
3
|
<?php $url = $_post [ "url" ]; unlink( $url ); |
以上所述是小编给大家介绍的php实现文件管理与基础功能操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/xuan584521/p/6592348.html