3 回答
TA贡献1802条经验 获得超5个赞
header("Refresh:2") 的测试对我不起作用,但它帮助我找到了解决方案(肯定有更好的解决方案):
我不得不将 php 分成 2 部分:
首先:
<?php
$filename = 'filename.html';
if (file_exists($filename)) { // if filename.html exist i delete it
unlink($filename);
}
header('Location:secondfile.php');
}
第二个文件是这样的:
<?php
$filename = 'filename.html';
do {
if (file_exists($filename)) {
usleep( 100000 );
include ($filename);
break;
}
} while(true);
?>
回答一些问题: $filename 在几毫秒内创建。之前创建的文件被删除,在这种情况下不会再被删除。我不是 php 专家,如果有更好的解决方案在一个文件中完成它,我会很高兴学习。
TA贡献1783条经验 获得超4个赞
您在代码中使用了无限循环,这对于您要做的事情来说不是最佳实践!
您可以使用header("Refresh:1")刷新页面来每秒检查文件是否存在。这可以节省你的资源,也可以做你想做的事。
<?php
header("Refresh:2");
$filename = 'filename.html';
if (file_exists($filename)) { // if filename.html exist i delete it
unlink($filename);
}
if (file_exists($filename)) { // waiting for a new filename.html (generated by another process)
include ($filename); // i will show it when ready
}
?>
包含新文件后要小心删除header("Refresh:2"),或使用条件来避免包含后删除。
- 3 回答
- 0 关注
- 105 浏览
添加回答
举报