学习了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程序设计有所帮助。