加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP中如何创建临时文件?浅析操作临时文件技巧

发布时间:2022-08-03 15:49:20 所属栏目:PHP教程 来源:互联网
导读:本篇文章带大家了解一下PHP中的临时文件,介绍一下获取默认临时创建文件目录、创建临时文件的方法,希望对大家有所帮助! 获取 PHP 的默认临时创建文件目录 学习过 Linux 操作系统的都会知道有一个目录是 /tmp 目录( Windows 中一般是:C:WindowsTemp )
  本篇文章带大家了解一下PHP中的临时文件,介绍一下获取默认临时创建文件目录、创建临时文件的方法,希望对大家有所帮助!
 
  获取 PHP 的默认临时创建文件目录
  学习过 Linux 操作系统的都会知道有一个目录是 /tmp 目录( Windows 中一般是:C:WindowsTemp ),它是用来存放系统的一些临时文件的,所以,这个目录也叫做临时文件目录。很多软件都会将一些临时保存的文件放在这个目录里面,包括一些缓存、一些临时生成的脚本之类的。PHP 在默认情况下也会将临时文件目录指向这个目录,包括 SESSION 文件之类的临时文件都会保存在这里。它可以在 php.ini 文件中通过 sys_tmp_dir 进行设置。
 
  print_r(sys_get_temp_dir());
 
  // /tmp
 
  创建一个临时文件
  既然有了临时文件目录,PHP 当然也贴心的为我们准备好了直接去创建一个临时文件的函数。
 
 
  $tmpFile = tmpfile();
 
  fwrite($tmpFile, "I'm tmp file.");
 
  // ll /tmp
 
 
   
 
  fclose($tmpFile);
 
  // ll /tmp
 
  tmpfile() 函数就是用来创建这个临时文件的,我们不需要为它指定文件名,也不需要为它指定路径,同时,它创建的文件是 w+ 类型的,也就是直接就是可读写的文件。当调用 fclose() 的时候,这个临时文件将自动删除掉。手册中说使用这个函数创建的文件在脚本运行结束后也会自动删除,但是在测试后发现脚本结束时文件并不会删除。
 
  在调用函数并写入内容后,我们暂停了十秒。其实就是为了去 /tmp 目录里看一下这个文件是否生成成功。根据文件创建的时间,我们找到了生成的这个对应的文件。然后在十秒后执行了 fclose() 之后,再次到目录查看,就会发现文件已经被自动删除了。
 
  根据目录状态创建一个唯一名称的临时文件
  最后,PHP 还为我们提供了一个非常人性化的创建临时文件的函数。
 
 
  $tmpFile = tempnam('/Users/zhangyue/MyDoc/博客文章/dev-blog/php/202006/source', 'testtmp');
 
  $f = fopen($tmpFile, "w");
 
  fwrite($f, "I'm tmp file.");
 
   
 
  // etc目录没有写权限
 
  $tmpFile = tempnam('/etc', 'testtmp');
 
  $f = fopen($tmpFile, "w");
 
  fwrite($f, "I'm tmp file.");
 
  // ll /etc
 
  // ll /tmp
 
  // vim testtmpTUNucM
 
  tempnam() 函数,它会根据目录的状态去生成一个唯一名称的临时文件。什么叫根据目录状态呢?从上面的代码注释中可以看出,第二段的 /etc 目录一般是 root 权限的目录,没有 root 帐户权限的话我们是无法创建修改文件的。如果是这种没有权限的目录,或者是压根就不存在的目录,tempnam() 函数就会将文件生成到临时文件目录中去。如果目录是正常存在并且可以写的,就像第一段代码一样,文件就会正常在这个目录进行创建。
 
  总结
  又发现了这几个非常好玩的函数,不管是做为临时缓存还是进行一些文件的创建,这两个临时文件操作的函数都非常有用。在日后的开发中我们可以多多尝试使用这样的函数,或许它们能够为我们带来不少的生产力提升。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读