PHP 8.0 ialah versi terbaru bahasa pengaturcaraan PHP, yang menawarkan banyak ciri baharu dan perpustakaan yang dipertingkatkan. Antaranya, pustaka operasi fail juga telah banyak dipertingkatkan dan diperluaskan, memberikan pembangun kaedah pengendalian fail yang lebih cekap dan fleksibel.
Operasi fail merupakan bahagian penting dalam pembangunan web dan hampir setiap aplikasi web perlu membaca, menulis dan memproses fail. Kadangkala, pembangun perlu menyimpan fail yang dimuat naik ke pelayan, dan kadangkala mereka perlu membaca fail konfigurasi atau fail sumber lain pada pelayan. PHP 8.0 menyediakan banyak fungsi dan kelas baharu yang boleh membantu pembangun memproses fail dengan lebih mudah, cepat dan selamat.
Di bawah ini kami akan memperkenalkan beberapa pustaka operasi fail penting dalam PHP8.0.
SplFileInfo ialah kelas yang sangat berguna yang menyediakan meta-maklumat tentang sistem fail, seperti nama fail, laluan penuh, saiz fail, akses dan masa pengubahsuaian, dsb. Kelas ini boleh membuat instantiate objek maklumat fail, yang boleh digunakan oleh pembangun untuk mendapatkan maklumat yang berkaitan.
$file = new SplFileInfo('path/to/file.txt'); echo $file->getSize(); // 输出文件大小 echo $file->getMTime(); // 输出最后修改时间 echo $file->isFile() ? '是文件' : '不是文件'; // 判断是否是文件
FilesystemIterator ialah kelas iterator yang boleh melintasi fail dan folder dalam folder. Fail dan folder boleh ditapis melalui pemalarnya, termasuk: FilesystemIterator::KEY_AS_FILENAME (nama fail), FilesystemIterator::KEY_AS_PATHNAME (laluan penuh), FilesystemIterator::CURRENT_AS_FILEINFO (item semasa sebagai objek SplFileInfo), dan FilesystemIterator:_SECURRENT_currentAS sendiri).
$dirIterator = new FilesystemIterator('path/to/folder'); foreach ($dirIterator as $fileInfo) { echo $fileInfo->getFilename()." "; // 输出文件名 }
DirectoryIterator ialah satu lagi kelas iterator yang merentasi fail dan folder dalam direktori, serupa dengan FilesystemIterator. Tetapi ia juga menyediakan beberapa maklumat tambahan, seperti jenis fail, kebenaran, pemilik, dsb.
$dirIterator = new DirectoryIterator('path/to/folder'); foreach ($dirIterator as $file) { if ($file->isFile()) { echo $file->getFilename()." "; // 输出文件名 } }
RecursiveDirectoryIterator ialah kelas iterator yang merentasi fail dan folder secara rekursif dalam direktori, serupa dengan DirectoryIterator, tetapi ia juga boleh merentasi subdirektori. Anda boleh menggunakan kelas RecursiveIteratorIterator untuk melintasi keseluruhan direktori.
$dirIterator = new RecursiveDirectoryIterator('path/to/folder'); $iterator = new RecursiveIteratorIterator($dirIterator); foreach ($iterator as $file) { if ($file->isFile()) { echo $file->getFilename()." "; // 输出文件名 } }
GlobIterator ialah kelas iterator yang mencari fail berdasarkan corak yang ditentukan. Kad bebas boleh digunakan untuk memadankan fail, seperti "*" untuk mewakili sebarang rentetan, "?" untuk mewakili mana-mana aksara tunggal dan "[ ]" untuk mewakili julat aksara.
$iterator = new GlobIterator('path/to/*.txt'); foreach ($iterator as $file) { echo $file->getFilename()." "; // 输出文件名 }
SplFileObject ialah kelas yang mengendalikan fail sebagai objek. Dengan menghidupkan objek SplFileObject, anda boleh membaca dan menulis fail, mengulang kandungan fail, menyemak saiz fail, mendapatkan cap masa fail dan operasi lain.
$file = new SplFileObject('path/to/file.txt'); while(!$file->eof()) { echo $file->fgets(); // 输出文件内容 } $file->fwrite('new content'); // 写入文件内容
Sistem fail ialah kelas sistem fail yang menyediakan satu siri kaedah lanjutan untuk mengendalikan fail dan direktori. Ia menyediakan beberapa operasi biasa seperti menyalin, memindahkan, memadam fail, mencipta direktori, dll.
use ComposerUtilFilesystem; $filesystem = new Filesystem(); $filesystem->copy($source, $target); // 复制文件 $filesystem->move($source, $target); // 移动文件 $filesystem->remove($file); // 删除文件 $filesystem->mkdir($dir); // 创建目录
Fungsi finfo digunakan untuk mendapatkan jenis fail. Anda boleh menentukan jenis MIME, sambungan fail, dsb. fail dengan menentukan parameter. Anda boleh menggunakan ini untuk mengesahkan bahawa fail yang dimuat naik adalah daripada jenis yang diperlukan.
$finfo = finfo_open(FILEINFO_MIME_TYPE); echo finfo_file($finfo, 'path/to/file.png'); // 输出 "image/png" finfo_close($finfo);
Ringkasan
Pustaka operasi fail PHP8.0 menyediakan pelbagai alatan untuk mengendalikan operasi direktori dan fail. Menggunakan perpustakaan ini, pembangun boleh membaca, menulis dan memproses fail dengan cepat dan tepat, yang membantu dengan penggunaan aplikasi dan pengoptimuman prestasi. Daripada SplFileInfo kepada fungsi finfo, kami telah melihat beberapa komponen berkuasa dalam perpustakaan manipulasi fail PHP 8.0. Komponen ini boleh memudahkan proses pembangunan operasi fail dan meningkatkan keteguhan dan kebolehselenggaraan program.
Atas ialah kandungan terperinci Pustaka operasi fail dalam PHP8.0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!