我有一个php脚本,正在检查virustotal扫描的结果。如果扫描对恶意代码返回肯定,它将在数据库中将该值更改为0。我有另一个php脚本,它检查该值,如果它是0,它将从db中删除该条目,然后从目录中删除该文件。当我通过命令行运行它时,它运行完美,但是当cron运行它时,它确实删除了db条目,但是它并未从目录中删除文件。任何帮助将非常感激。这是带有取消链接的php文件的结尾:else{ // if not it deletes the image $hash = $row['hash']; $result2 = mysqli_query($connection, "DELETE FROM userUploads WHERE hash = '$hash' "); // need due to dir structure $pat = str_replace('../','', $row['fileName']); unlink ($pat); if (! $result2){ echo('Database error: ' . mysqli_error($connection)); }
1 回答
狐的传说
TA贡献1804条经验 获得超3个赞
问题几乎可以肯定是道路$pat = str_replace('../','', $row['fileName']);。Crons执行PHP cli,这与Apache执行的PHP不同,这也是另一个上下文。尝试设置绝对路径:
$pat = "/var/www/myfolder/myscript.some";
如果由于某种原因由于文件夹结构取决于上下文(例如,开发,生产)而需要变量,则可以在cron执行PHP时将变量作为参数传递:
//this is the cron
30 17 * * 1 myscript.php myvar
在myscript.php里面$argv[1]是myvar。
- 1 回答
- 0 关注
- 238 浏览
添加回答
举报
0/150
提交
取消