PHP文件编程的介绍
程序员文章站
2022-04-01 11:04:37
...
这篇文章主要介绍了关于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>'; 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);
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中文网!
相关推荐:
以上就是PHP文件编程的介绍的详细内容,更多请关注其它相关文章!
上一篇: python字典键值对的添加和遍历方法