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 關注
- 149 瀏覽
添加回答
舉報