Rumah >pembangunan bahagian belakang >masalah PHP >Operasi fail PHP: alih keluar fail atau direktori pada laluan tertentu
Dalam artikel sebelumnya "operasi fail php: mengekstrak nama fail/direktori", kami belajar cara mendapatkan bahagian nama fail/direktori. Kali ini kita meneruskan siri operasi fail PHP dan bercakap tentang cara memadam fail atau direktori yang ditentukan Rakan-rakan yang berminat boleh mempelajarinya~
Apabila mengendalikan fail/direktori, bukan sahaja Anda boleh mengendalikan data daripada. fail/direktori itu sendiri (seperti memadam fail/direktori). Hari ini kami akan memperkenalkan kepada anda cara memadam fail atau direktori yang ditentukan.
1: Padam operasi fail yang ditentukan
Untuk memadam fail, anda boleh menggunakan fungsi unlink($filename,$context)
, yang boleh memadamkan fail yang ditentukan $filename
Parameter pilihan $context
digunakan untuk menentukan persekitaran pemegang fail. Mengembalikan TRUE jika pelaksanaan berjaya dan FALSE jika gagal.
Mari kita lihat contoh kod khusus:
Contoh 1: Padam fail "test.txt" dalam direktori yang sama
<?php header("content-type:text/html;charset=utf-8"); $file = 'test.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 删除成功!'; }else{ echo $file.' 删除失败!'; } }else{ echo $file.' 不存在!'; } ?>
Hasil output ialah:
Selepas membuka semula direktori dan melihat fail, anda akan mendapati bahawa fail "test.txt" tidak lebih lama wujud.
Contoh 2: Padamkan fail "text.txt" dalam direktori D:demo
<?php header("content-type:text/html;charset=utf-8"); $file = 'D:/demo/text.txt'; if(file_exists($file)){ if(unlink($file)){ echo $file.' 删除成功!'; }else{ echo $file.' 删除失败!'; } }else{ echo $file.' 不存在!'; } ?>
Output Hasilnya ialah:
Selepas membuka semula direktori dan melihat fail, anda akan mendapati bahawa fail "text.txt" tidak lagi wujud.
Bagaimana untuk memadam semua fail dalam direktori, anda boleh menggunakan gelung dan readdir() untuk mendapatkan semua fail dan direktori dalam direktori D:demo (tidak termasuk subdirektori) , dan kemudian padam semua fail di dalamnya:
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo'; if (is_dir($dir)) { $info = opendir($dir); while (($file = readdir($info)) !== false) {//用不全等于是区分如果文件夹名字为0的时候,那么0!==false,仍然可以遍历 if ($file != "." && $file != ".." ) { $path = $dir . '/' . $file; if(is_dir($path)){ continue; } unlink($path); } } echo '文件删除成功!'; closedir($info); } ?>
Hasil output ialah:
Selepas membuka semula direktori dan melihat fail, anda akan dapati bahawa hanya Folder "img" seterusnya masih wujud.
2: Padam operasi direktori yang ditentukan
Untuk memadamkan direktori, anda boleh menggunakan rmdir($dir,$context)
fungsi, $context Merupakan parameter yang ditinggalkan digunakan untuk menentukan persekitaran pemegang fail. Mengembalikan TRUE jika pelaksanaan berjaya dan FALSE jika gagal.
Perlu diambil perhatian bahawa apabila menggunakan fungsi rmdir() untuk memadamkan direktori yang ditentukan, direktori tersebut mestilah kosong dan mesti mempunyai kebenaran yang sepadan. Memadamkan direktori yang tidak kosong juga akan menghasilkan ralat tahap E_WERNING.
Mari kita lihat contoh kod khusus: Padam direktori kosong "img" di bawah direktori D:demo
<?php header("content-type:text/html;charset=utf-8"); $dir = 'D:/demo/img'; if(is_dir($dir)){ if(rmdir($dir)) echo '目录删除成功!'; }else{ echo "目录不存在!"; } ?>
Hasil output ialah:
Selepas membuka semula direktori dan melihat fail, anda akan mendapati direktori kosong "img" tidak lagi wujud.
Tetapi dalam kebanyakan kes, direktori yang perlu kami padamkan tidak kosong, dan ia akan mengandungi banyak sub-fail dan sub-direktori Bagaimana kami memadam itu? Bagaimana dengan direktori yang ditentukan dan sub-fail dan direktorinya?
Kaedah pelaksanaan khusus: anda boleh melintasi semua fail dan folder dalam direktori ini dan memadam semua fail dan folder dalam direktori ini satu demi satu secara rekursif
Seperti yang diberikan di bawah Pelaksanaan khusus kod:
<?php function deldir($path){ //如果是目录则继续 if(is_dir($path)){ //扫描一个文件夹内的所有文件夹和文件并返回数组 $p = scandir($path); //如果 $p 中有两个以上的元素则说明当前 $path 不为空 if(count($p)>2){ foreach($p as $val){ //排除目录中的.和.. if($val !="." && $val !=".."){ //如果是目录则递归子目录,继续操作 if(is_dir($path.$val)){ //子目录中操作删除文件夹和文件 deldir($path.$val.'/'); }else{ //如果是文件直接删除 unlink($path.$val); } } } } } //删除目录 return rmdir($path); } //设置需要删除的文件夹 $path = "D:/demo/"; //调用函数,传入路径 deldir($path); ?>
Itu sahaja jika anda ingin tahu apa-apa lagi, anda boleh klik di sini. → →Pengendalian asas fail PHP
Disyorkan: 《Koleksi soalan temuduga PHP (koleksi)》《tutorial video php 》
Atas ialah kandungan terperinci Operasi fail PHP: alih keluar fail atau direktori pada laluan tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!