PHP文件编程的介绍
这篇文章主要介绍了关于PHP文件编程的介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
1 获取文件信息
1.1 第一种方式(fopen、fstat、file_exists)
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ // 检查文件或目录是否存在,存在则返回 TRUE,否则返回 FALSE $fp = fopen($file_full_path, 'r'); // 打开文件或url,成功时返回文件指针资源,如果打开失败,本函数返回 FALSE。 $fileinfo_arr = fstat($fp); // 通过已打开的文件指针取得文件信息,返回一个数组具有该文件的统计信息 echo '<pre class="brush:php;toolbar:false">'; var_dump($fileinfo_arr); echo '文件的大小是:' . $fileinfo_arr['size'] . '个字节'; echo '文件的创建时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['ctime']); echo '文件的访问时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['atime']); echo '文件的修改时间是:' . date('Y-m-d H:i:s', $fileinfo_arr['mtime']); }else{ echo '文件不存在'; }
1.2 第二种方式
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ echo '文件的大小是:' . filesize($file_full_path); echo '文件的类型是:' . filetype($file_full_path); echo '文件的创建时间是:' . date('Y-m-d H:i:s', filectime($file_full_path)); echo '文件的访问时间是:' . date('Y-m-d H:i:s', fileatime($file_full_path)); echo '文件的修改时间是:' . date('Y-m-d H:i:s', filemtime($file_full_path)); }else{ echo '文件不存在'; }
2 读取文件内容
2.1 第一种方式,fread
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ // 1、打开文件 $fp = fopen($file_full_path, 'r'); // 2、获取文件的大小 $file_size = filesize($file_full_path); // 3、读取内容 $con_str = fread($fp, $file_size); // 返回所读取的字符串, 或者在失败时返回 FALSE。 fclose($fp); // 替换换行符 $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); // 替换 tab $con_str = str_replace(" ", " ", $con_str); echo $con_str; }else{ echo '文件不存在'; }
2.2 第二种方式,feof
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ $fp = fopen($file_full_path, 'r'); // 设置缓冲 $buffer = ''; $buffer_size = 1024; $con_str = ''; while(!feof($fp)){ // 测试文件指针是否到了文件结束的位置,到达返回true,否则返回false $buffer = fread($fp, $buffer_size); $con_str .= $buffer; } // 关闭文件 fclose($fp); $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); $con_str = str_replace(" ", ' ', $con_str); echo $con_str; }else{ echo '文件不存在'; }
2.3 第三种方式,file_get_contents
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ $con_str = file_get_contents($file_full_path); // 将整个文件读入一个字符串 $con_str = str_replace("\r\n", '<br>', $con_str); $con_str = str_replace("\n", '<br>', $con_str); $con_str = str_replace(" ", ' ', $con_str); echo $con_str; }else{ echo '文件不存在'; }
3 创建文件,并写入内容
3.1 案例1
<?php $file_full_path = './test.txt'; if(!file_exists($file_full_path)){ if($fp = fopen($file_full_path, 'w')){ // 覆盖写入10句helloworld $con = ''; for($i=0; $i<10; $i++){ $con .= "HelloWorld\r\n"; } // 写入文件 fwrite($fp, $con); // fwrite() 返回写入的字符数,出现错误时则返回 FALSE 。 fclose($fp); }else{ echo '创建文件失败'; } }else{ echo '文件已经存在'; }
3.2 案例2,file_put_contents
<?php $file_full_path = './test.txt'; if(!file_exists($file_full_path)){ $con = ''; for($i=0; $i<10; $i++){ $con .= "helloworld\r\n"; } // 默认是覆盖写,可以追加FILE_APPEND参数,改为追加写。 file_put_contents($file_full_path, $con); // 和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。 }else{ echo '已经存在该文件'; }
4 删除文件
<?php $file_full_path = './test.txt'; if(file_exists($file_full_path)){ if(unlink($file_full_path)){ echo '<br>删除成功'; }else{ echo '<br>删除失败'; } }else{ echo '文件不存在,无法删除'; }
5 修改文件名
<?php $file_full_path = './test.txt'; $file_new_full_path = './王八.txt'; $file_new_full_path = iconv('utf-8', 'gbk', $file_new_full_path); if(file_exists($file_full_path)){ if(rename($file_full_path, $file_new_full_path)){ // 重命名一个文件或目录 echo '改名成功!'; }else{ echo '改名失败!'; } }else{ echo '文件不存在'; }
6 操作文件目录
6.1 创建一级目录
<?php $dir_full_path = './abc'; // 判断有没有该目录 if(!is_dir($dir_full_path)){ if(mkdir($dir_full_path)){ echo '创建目录成功!'; }else{ echo '创建目录失败!'; } }else{ echo '已经存在该目录,无法再次创建'; }
6.2 创建多级目录
<?php $dir_full_path = './abc/edf/xyz'; if(!is_dir($dir_full_path)){ if(mkdir($dir_full_path, 0777, true)){ // true 表示递归创建 echo '创建目录成功'; }else{ echo '创建目录失败'; } }else{ echo '已经存在该目录,无法再次创建!'; }
6.3 删除目录(一级)
<?php $dir_full_path = './abc'; if(is_dir($dir_full_path)){ if(rmdir($dir_full_path)){ echo '删除目录成功'; }else{ echo '删除目录失败'; } }else{ echo '不存在该文件夹'; }
7 文件编程的应用案例
7.1 如何拷贝一张图片
<?php $file_src_full_path = 'F:/壁纸.jpg'; $file_src_full_path = iconv('utf-8', 'gbk', $file_src_full_path); $file_des_full_path = 'D:/amp/WWW/萧山.jpg'; $file_des_full_path = iconv('utf-8', 'gbk', $file_des_full_path); if(file_exists($file_src_full_path)){ if(copy($file_src_full_path, $file_des_full_path)){ echo '拷贝成功'; }else{ echo '拷贝失败'; } }else{ echo '没有这个文件'; }
7.2 遍历某个文件夹,判断文件夹下面内容分别是目录和文件
<?php $dir_full_path = 'D:/amp/WWW/'; if(is_dir($dir_full_path)){ $dir_handle = opendir($dir_full_path); // 如果成功则返回目录句柄的 resource,失败则返回 FALSE while(($file_name = readdir($dir_handle)) !== false){ // 成功则返回文件名 或者在失败时返回 FALSE if(is_dir($dir_full_path . $file_name)){ echo $file_name . '是目录<br>'; }else{ echo $file_name . '是文件<br>'; } } closedir($dir_handle); }else{ echo '不是目录,无法打开'; }
7.3 写一个函数统计某个目录所有文件的大小
<?php $dir_name = 'D:/amp/WWW'; function getDirSize($dir_name){ $dir_size = 0; $dir_handle = opendir($dir_name); while(($file_name = readdir($dir_handle)) !== false){ $file = $dir_name . '/' . $file_name; // 文件全名 if($file_name!=='.' && $file_name!=='..'){ if(is_dir($file)){ $dir_size += getDirSize($file); }else{ $dir_size += filesize($file); } } } closedir($dir_handle); return $dir_size; } echo getDirSize($dir_name);
<br/>
7.4 删除某个目录
<?php $dir_name = 'D:/amp/WWW/.idea'; function rrmdir($src){ $dir_handle = opendir($src); while(false !== ($file = readdir($dir_handle))){ if(($file != '.') && ($file != '..')){ $full = $src . '/' . $file; if(is_dir($full)){ rrmdir($full); }else{ unlink($full); } } } closedir($dir_handle); rmdir($src); } rrmdir($dir_name);
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
Atas ialah kandungan terperinci PHP文件编程的介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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



Alipay Php ...

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,

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

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.

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.
