2 回答
TA贡献1854条经验 获得超8个赞
您需要fclose($myfile);在完成第一个之后调用fwrite(),以确保刷新缓冲区。按照您编写的方式,第一个流在脚本结束之前不会关闭。届时它将刷新其缓冲区,覆盖第二个流写入的内容。
如果您使用file_put_contents(). 它一步打开、写入和关闭文件:
#!/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条经验 获得超4个赞
我终于解决了错误。以下是我遵循的步骤以及我在两者之间收到的错误消息:
正如@SulthanAllaudeen 所建议的那样,我在打开
flag.txt
.就许可或系统升级的任何最新变化与管理人员进行了交谈。他们没有做任何改变。
按照@Barmar 的建议关闭文件句柄。
仍然不断收到同样的错误。
然后将
flag.txt
文件的路径从 relative 更改为 absolute。事实证明,cronjobs 需要所有路径都是绝对的,至少在我的情况下。这解决了“权限被拒绝”错误。但是后来我开始收到错误“无法重新声明函数”。所以
emails.php
我包含的文件,我将其更改为include_once()并且它起作用了。我仍然按照@Barmar 的建议关闭文件句柄,这是一个很好的做法。
TL;DR:通过提供包含的所有文件的绝对路径解决了错误。此外,将 include() 语句更改为 include_once()。
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报