学习了PHP的文件编程,其中PHP自身提供了复制文件的函数(copy)。自己也写了一个功能差不多的复制图片的函数,以此在这里记录一下。
在说该函数之前,先介绍一下使用PHP创建/删除文件夹、文件等知识。
1.创建文件夹
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php //使用 file_exists("d:/mydir") 或 is_dir("d:/mydir")判断该文件夹是否存在 if (! file_exists ( "d:/mydir" )) { if ( mkdir ( "d:/mydir" )) { echo "创建文件夹成功" ; } else { echo "创建文件夹失败" ; } } else { echo "该文件夹已存在" ; } ?> |
2.创建多级目录(上面所说的,只能创建一级目录)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php //使用 file_exists("d:/mydir") 或 is_dir("d:/mydir")判断该文件夹是否存在 $path = "d:/mydir/p/h/p/test" ; if (! file_exists ( $path )) { if ( mkdir ( $path ,0777,true)) { echo "创建文件夹成功" ; } else { echo "创建文件夹失败" ; } } else { echo "该文件夹已存在" ; } ?> |
3.删除文件夹
1
2
3
4
5
6
7
8
|
<?php //如果文件夹下有文件,或者目录,均不能删除成功 if ( rmdir ( "d:/mydir/p/h/p/test" )) { echo "删除文件夹成功" ; } else { echo "删除文件夹成功" ; } ?> |
4.文件的创建
1
2
3
4
5
6
7
8
9
|
<?php //在d:/mydir目录下,创建一个文件并写入hello $file_path = "d:/mydir2/test.txt" ; $fp = fopen ( $file_path , "w+" ); fwrite( $fp , "hello,world" ); fclose( $fp ); echo "文件写入成功" ; ?> |
5.删除文件
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $file_path = "d:/mydir2/test.txt" ; if ( is_file ( $file_path )) { if (unlink( $file_path )) { echo "删除成功" ; } else { echo "删除失败" ; } } else { echo "文件不存在" ; } ?> |
复制文件的函数:
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
|
<?php //PHP自身提供的copy文件函数:应用拷贝图片 //copy("来源","地点") //$file_path=iconv("utf-8","gb2312","含中文路径"); //将utf-8编码转为gb2312码 /*if(!copy("C:\\bh.PNG","D:\\bh2.png")) { echo 'error'; } else { echo 'ok'; }*/ //自制拷贝文件的函数 function myCopyFunc( $res , $des ) { if ( file_exists ( $res )) { $r_fp = fopen ( $res , "r" ); //定位 $pos = strripos ( $des , "\\" ); $dir = substr ( $des ,0, $pos ); if (! file_exists ( $dir )) { //可创建多级目录 mkdir ( $dir ,0777,true); echo "创建目录成功<br/>" ; } $d_fp = fopen ( $des , "w+" ); //$fres=fread($r_fp,filesize($res)); //边读边写 $buffer =1024; $fres = "" ; while (! feof ( $r_fp )) { $fres = fread ( $r_fp , $buffer ); fwrite( $d_fp , $fres ); } fclose( $r_fp ); fclose( $d_fp ); echo "复制成功" ; } else { echo "源文件不存在" ; } } myCopyFunc( "C:\\bh.PNG" , "D:\\PHPTest\\test\bh2.PNG" ); //myCopyFunc("C:\\bh.PNG","D:\\bh.PNG"); ?> |
以上代码包含PHP文件编程中的文件读取与写入功能,希望对大家学习php程序设计有所帮助。