2 回答

TA貢獻1854條經(jīng)驗 獲得超8個贊
您需要fclose($myfile);在完成第一個之后調(diào)用fwrite(),以確保刷新緩沖區(qū)。按照您編寫的方式,第一個流在腳本結(jié)束之前不會關(guān)閉。屆時它將刷新其緩沖區(qū),覆蓋第二個流寫入的內(nèi)容。
如果您使用file_put_contents(). 它一步打開、寫入和關(guān)閉文件:
#!/opt/rh/php55/root/usr/bin/php
<?php
// require '../dbmanage.php';
require '/path to college servers/dbmanage.php';
logCronJob("dropstudent", "begin");
$filepath = '/path to college servers/cronjobs/flag.txt';
// Change flag to false
file_put_contents("false", $filepath);
// do the drop checks and other relevant stuff here
// Change flag back to true
file_put_contents("true", $filepath);

TA貢獻1802條經(jīng)驗 獲得超4個贊
我終于解決了錯誤。以下是我遵循的步驟以及我在兩者之間收到的錯誤消息:
正如@SulthanAllaudeen 所建議的那樣,我在打開
flag.txt
.就許可或系統(tǒng)升級的任何最新變化與管理人員進行了交談。他們沒有做任何改變。
按照@Barmar 的建議關(guān)閉文件句柄。
仍然不斷收到同樣的錯誤。
然后將
flag.txt
文件的路徑從 relative 更改為 absolute。事實證明,cronjobs 需要所有路徑都是絕對的,至少在我的情況下。這解決了“權(quán)限被拒絕”錯誤。但是后來我開始收到錯誤“無法重新聲明函數(shù)”。所以
emails.php
我包含的文件,我將其更改為include_once()并且它起作用了。我仍然按照@Barmar 的建議關(guān)閉文件句柄,這是一個很好的做法。
TL;DR:通過提供包含的所有文件的絕對路徑解決了錯誤。此外,將 include() 語句更改為 include_once()。
- 2 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報