PHP常用技术文之文件操作和目录操作总结_PHP
一、基本文件的操作
文件的基本操作有:文件判断、目录判断、文件大小、读写性判断、存在性判断及文件时间等
<?php header("content-type","text/html;charset=utf-8"); /* *声明一个函数,传入文件名获取文件属性 *@param string $fileName 文件名称 */ function getFilePro($fileName) { if(!file_exists($fileName)) { echo '文件不存在<br/>'; return; } /*是否是普通文件*/ if(is_file($fileName)) { echo $fileName.'是一个文件<br/>'; } /*是否是目录*/ if(is_dir($fileName)) { echo $fileName.'是一个目录'; } /*输出文件的型态*/ echo '文件型态是:'.getFileType($fileName).'<br/>'; /*文件大小,转换单位*/ echo '文件大小是:'.getFileSize(filesize($fileName)).'<br/>'; /*文件是否可读*/ if(is_readable($fileName)) { echo '文件可读<br/>'; } /*文件是否可写*/ if(is_writable($fileName)) { echo '文件可写<br/>'; } /*文件是否可执行*/ if(is_executable($fileName)) { echo '文件可执行<br/>'; } echo '文件创立时间:'.date('Y年m月j日',filectime($fileName)).'<br/>'; echo '文件最后修改时间:'.date('Y年m月j日',filemtime($fileName)).'<br/>'; echo '文件最后打开时间:'.date('Y年m月j日',fileatime($fileName)).'<br/>'; } /* *声明一个函数,返回文件类型 *@param string $fileName 文件名称 */ function getFileType($fileName) { $type = ''; switch(filetype($fileName)) { case 'file':$type .= '普通文件';break; case 'dir':$type .= '目录文件';break; case 'block':$type .= '块设备文件';break; case 'char':$type .= '字符设备文件';break; case 'filo':$type .= '管道文件';break; case 'link':$type .= '符号链接';break; case 'unknown':$type .= '未知文件';break; default: } return $type; } /* *声明一个函数,返回文件大小 *@param int $bytes 文件字节数 */ function getFileSize($bytes) { if($bytes >= pow(2,40)) { $return = round($bytes / pow(1024,4),2); $suffix = 'TB'; } else if($bytes >= pow(2,30)) { $return = round($bytes / pow(1024,3),2); $suffix = 'GB'; } else if($bytes >= pow(2,20)) { $return = round($bytes / pow(1024,2),2); $suffix = 'MB'; } else if($bytes >= pow(2,10)) { $return = round($bytes / pow(1024,1),2); $suffix = 'KB'; } else { $return = $bytes; $suffix = 'B'; } return $return." ".$suffix; } /*调用函数,传入test目录下的test.txt文件*/ getFilePro('./test/div.html'); ?>
结果:
二、目录的操作
目录的操作有:遍历目录、删除、复制、大小统计等
1、遍历目录
/* *遍历目录 *@param string $dirName 目录名 */ function findDir($dirName) { $num = 0; /*统计子文件个数*/ $dir_handle = opendir($dirName); /*打开目录*/ /*输出目录文件*/ echo '<table border="0" align="center" width="600" cellspacing="0" cellpadding="0">'; echo '<caption><h2 id="目录-dirName-下的文件">目录'.$dirName.'下的文件</h2></caption>'; echo '<tr align="left" bgcolor="#cccccc"'; echo '<th>文件名</th><th>文件大小</th><th>文件类型</th><th>修改时间</th></tr>'; while($file = readdir($dir_handle)) { $dirFile = $dirName.'/'.$file; $bgcolor = $num++%2==0?'#ffffff':'#cccccc'; echo '<tr bgcolor='.$bgcolor.'>'; echo '<td>'.$file.'</td>'; echo '<td>'.filesize($dirFile).'</td>'; echo '<td>'.filetype($dirFile).'</td>'; echo '<td>'.date('Y/n/t',filemtime($dirFile)).'</td>'; echo '</tr>'; } echo "</table>"; closedir($dir_handle); /*关闭目录*/ echo "在<b>".$dirName."</b>目录下共有<b>".$num.'</b>个子文件'; } /*传递当前目录下的test目录*/ findDir('./test');
结果
2、统计目录大小
/* *统计目录大小 *@param string $dirName 目录名 *@return double */ function dirSize($dirName) { $dir_size = 0; if($dir_handle = @opendir($dirName)) { while ($fileName = readdir($dir_handle)) { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if(is_file($subFile)) { $dir_size += filesize($subFile); } if(is_dir($subFile)) { $dir_size += dirSize($subFile); } } } closedir($dir_handle); return $dir_size; } } /*传递当前目录下的test目录*/ $dir_size = dirSize('./test'); echo './test目录文件大小是:'.round($dir_size / pow(1024,1),2).'KB';
结果:
3、删除目录
/* *删除目录 *@param string $dirName 目录名 */ function delDir($dirName) { /*php中的mkdir函数就可以创建目录*/ if(file_exists($dirName)) { if($dir_handle = @opendir($dirName)) { while ($fileName = readdir($dir_handle)) { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subFile = $dirName.'/'.$fileName; if(is_file($subFile)) { unlink($subFile); } if(is_dir($subFile)) { delDir($subFile); } } } closedir($dir_handle); rmdir($dirName); return $dirName.'目录已经删除'; } } } /*传递test目录的副本test1*/ echo delDir('./test1');
删除成功的提示信息
4、复制目录
/* *复制目录 *@param string $dirSrc 原目录名 *@param string $dirTo 目标目录名 */ function copyDir($dirSrc,$dirTo) { if(is_file($dirTo)) { echo '目标目录不能创建';/*目标不是一个*/ return; } if(!file_exists($dirTo)) { /*目录不存在则创建*/ mkdir($dirTo); } if($dir_handle = @opendir($dirSrc)) { while ($fileName = readdir($dir_handle)) { /*排除两个特殊目录*/ if($fileName != '.' && $fileName != '..') { $subSrcFile = $dirSrc.'/'.$fileName; $subToFile = $dirTo.'/'.$fileName; if(is_file($subSrcFile)) { copy($subSrcFile,$subToFile); } if(is_dir($subSrcFile)) { copyDir($subSrcFile,$subToFile); } } } closedir($dir_handle); return $dirSrc.'目录已经复制到'.$dirTo.'目录'; } } echo copyDir('./test','../testcopy');

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
