PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例

这篇文章主要介绍了PHP检查文件是否存在,不存在自动创建及读取文件内容操作,结合实例形式分析了PHP针对文件的检测、创建、遍历、读取等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP检查文件是否存在,不存在自动创建及读取文件内容操作,分享给大家供大家参考,具体如下:

  1. <?php
  2. $filename = 'a/b.html';
  3. $writetext = 'ssssssssssss';
  4. $result = jwritefile($filename, $writetext);
  5. var_dump($result);die;
  6. function jwritefile($filename, $writetext) {
  7. $position = strrpos($filename,'/');
  8. $path = substr($filename,0,$position);
  9. if(!file_exists($path)){
  10. mkdir($path,0777,true);
  11. }
  12. $updatetime = filemtime($filename);
  13. $difftime = time()-$updatetime;
  14. if($difftime > 3600){//时间大于一个小时
  15. if (@file_put_contents($filename, $writetext, LOCK_EX)) {
  16. return 1;
  17. }else {
  18. return -1;
  19. }
  20. }else{
  21. return 0;//时间小于1一个钟头,不用生成
  22. }
  23. }
  24. ?>
  25. <?php
  26. $filename = $path.'log/'.gmdate('Ym').'/'.gmdate('j').'.log';//文件地址
  27. $position = strrpos($filename,'/');
  28. $path = substr($filename,0,$position);
  29. if(!file_exists($path)){
  30. mkdir($path,0777,true);//创建目录
  31. }
  32. $fp=@fopen($filename,"a+");
  33. $content = $log."-".date('Y-m-d H:i:s')."\r\n";
  34. @fputs($fp,$content);
  35. @fclose($fp);
  36. ?>

读取文件内容

  1. <?php
  2. $handle = @fopen("/tmp/inputfile.txt", "r");
  3. if ($handle) {
  4. while (!feof($handle)) {
  5. $buffer = fgets($handle, 4096);
  6. echo $buffer;
  7. }
  8. fclose($handle);
  9. }
  10. ?>

附加说明:

fopen() 中 mode 的可能值列表

mode 说明

'r' 只读方式打开,将文件指针指向文件头。

'r+' 读写方式打开,将文件指针指向文件头。

'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件