學(xué)習(xí)了PHP的文件編程,其中PHP自身提供了復(fù)制文件的函數(shù)(copy)。自己也寫了一個功能差不多的復(fù)制圖片的函數(shù),以此在這里記錄一下。
在說該函數(shù)之前,先介紹一下使用PHP創(chuàng)建/刪除文件夾、文件等知識。
1.創(chuàng)建文件夾
<?php
//使用 file_exists("d:/mydir") 或 is_dir("d:/mydir")判斷該文件夾是否存在
if(!file_exists("d:/mydir")) {
if(mkdir("d:/mydir")) {
echo "創(chuàng)建文件夾成功";
}else{
echo "創(chuàng)建文件夾失敗";
}
} else {
echo "該文件夾已存在";
}
?>
2.創(chuàng)建多級目錄(上面所說的,只能創(chuàng)建一級目錄)
<?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 "創(chuàng)建文件夾成功";
}else{
echo "創(chuàng)建文件夾失敗";
}
} else {
echo "該文件夾已存在";
}
?>
3.刪除文件夾
<?php
//如果文件夾下有文件,或者目錄,均不能刪除成功
if(rmdir("d:/mydir/p/h/p/test")) {
echo "刪除文件夾成功";
} else {
echo "刪除文件夾成功";
}
?>
4.文件的創(chuàng)建
<?php
//在d:/mydir目錄下,創(chuàng)建一個文件并寫入hello
$file_path="d:/mydir2/test.txt";
$fp=fopen($file_path,"w+");
fwrite($fp,"hello,world");
fclose($fp);
echo "文件寫入成功";
?>
5.刪除文件
<?php
$file_path="d:/mydir2/test.txt";
if(is_file($file_path)) {
if(unlink($file_path)) {
echo "刪除成功";
} else {
echo "刪除失敗";
}
} else {
echo "文件不存在";
}
?>
復(fù)制文件的函數(shù):
<?php
//PHP自身提供的copy文件函數(shù):應(yīng)用拷貝圖片
//copy("來源","地點")
//$file_path=iconv("utf-8","gb2312","含中文路徑");
//將utf-8編碼轉(zhuǎn)為gb2312碼
/*if(!copy("C:\\bh.PNG","D:\\bh2.png")) {
echo 'error';
} else {
echo 'ok';
}*/
//自制拷貝文件的函數(shù)
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)) {
//可創(chuàng)建多級目錄
mkdir($dir,0777,true);
echo "創(chuàng)建目錄成功<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 "復(fù)制成功";
} else {
echo "源文件不存在";
}
}
myCopyFunc("C:\\bh.PNG","D:\\PHPTest\\test\bh2.PNG");
//myCopyFunc("C:\\bh.PNG","D:\\bh.PNG");
?>
以上代碼包含PHP文件編程中的文件讀取與寫入功能,希望對大家學(xué)習(xí)php程序設(shè)計有所幫助。