PHP方法无法截断文本文件,该如何调整权限实现文件清空?
PHP无法清空txt文件问题及解决方案
问题场景
- 现有预注册数据文件
tmp/data.txt,俱乐部会议期间每晚需处理5~25次,文件初始权限为644 - 配套HTML网页应用用于生成用户ID,ID示例:10673062、12345678 等
- 业务规则要求:读取文件内容后必须将文件截断为0字节,避免重复处理相同ID
排查过程
最初尝试将PHP清空逻辑嵌入前端JS代码中,测试代码如下:
<script> function remake() { // 执行各类JS操作后执行清空 <?php $fh = fopen( 'tmp/data.txt', 'w' ); fclose($fh);?> <?php file_put_contents("tmp/data.txt", "");?> <?php $fp = fopen("tmp/data.txt", "w+"); ftruncate($fp, 0); fclose($fp);?> // 执行后续JS操作 } </script>
执行后文件内容始终未发生变化,最初怀疑是文件权限问题,需要调整chmod或chgrp配置赋予PHP操作权限。
最终解决方法
将文件清空逻辑单独抽离为独立的PHP文件eraseRegs.php,需要执行清空操作时调用该PHP文件即可正常完成文件清空。
内容的提问来源于stack exchange,提问作者verlager
相关产品推荐
相关产品推荐

