3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
header("Refresh:2") 的測(cè)試對(duì)我不起作用,但它幫助我找到了解決方案(肯定有更好的解決方案):
我不得不將 php 分成 2 部分:
首先:
<?php
$filename = 'filename.html';
if (file_exists($filename)) { // if filename.html exist i delete it
unlink($filename);
}
header('Location:secondfile.php');
}
第二個(gè)文件是這樣的:
<?php
$filename = 'filename.html';
do {
if (file_exists($filename)) {
usleep( 100000 );
include ($filename);
break;
}
} while(true);
?>
回答一些問(wèn)題: $filename 在幾毫秒內(nèi)創(chuàng)建。之前創(chuàng)建的文件被刪除,在這種情況下不會(huì)再被刪除。我不是 php 專家,如果有更好的解決方案在一個(gè)文件中完成它,我會(huì)很高興學(xué)習(xí)。

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
您在代碼中使用了無(wú)限循環(huán),這對(duì)于您要做的事情來(lái)說(shuō)不是最佳實(shí)踐!
您可以使用header("Refresh:1")刷新頁(yè)面來(lái)每秒檢查文件是否存在。這可以節(jié)省你的資源,也可以做你想做的事。
<?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"),或使用條件來(lái)避免包含后刪除。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需擺脫 do while 循環(huán),這就是導(dǎo)致無(wú)限循環(huán)的原因。那本來(lái)的目的是什么?
- 3 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)