嵌入HTML文件的PHP删除文件代码失效,但独立PHP脚本可正常执行的问题求助
嵌入HTML文件的PHP删除文件代码失效,但独立PHP脚本可正常执行的问题求助
各位好,我目前在树莓派4上搭建了Apache+PHP环境,基础功能都正常运行,但遇到了一个头疼的问题:
背景逻辑
我做了一个会自动刷新的index.html页面,核心逻辑是:如果服务器的images目录下存在file_change.txt标记文件,就删除这个文件并刷新页面,从而展示新的图片。另外还有一个维护页面,当我在维护页面选择新图片后,会生成file_change.txt,并把选中的图片覆盖为images/default.jpg——理论上index.html检测到标记文件后就会删除它并刷新,加载新的default.jpg。
当前问题
- 页面刷新功能正常,新图片也能正常显示,但嵌入在
index.html里的PHP代码始终无法删除file_change.txt - 把同样的PHP代码写成独立的
remove.php脚本,在服务器命令行执行php remove.php,却能成功删除文件 - 额外问题:浏览器访问简单的PHP文件(比如仅输出"hello world"的
blah.php)时,页面显示空白,但PHP本身是正常工作的(命令行可执行脚本)
相关代码与信息
index.html中嵌入的PHP代码(放在<body>标签内):
<?php $file_path = '/var/www/html/images/file_change.txt'; if (file_exists($file_path)) { // Delete the file unlink($file_path); echo "The file '$file_path' has been deleted."; } else { echo "The file '$file_path' does not exist."; } ?>
- 服务器命令行的PHP版本信息:
/var/www/html $ php -version PHP 8.3.12 (cli) (built: Sep 27 2024 04:03:53) (NTS) Copyright (c) The PHP Group Zend Engine v4.3.12, Copyright (c) Zend Technologies with Zend OPcache v8.3.12, Copyright (c), by Zend Technologies
- 执行独立
remove.php脚本的结果:
/var/www/html $ php remove.php The file '/var/www/html/images/file_change.txt' has been deleted. <hidden server name>:/var/www/html $
我的困惑
完全搞不懂为什么同样的代码,独立脚本能正常删除文件,嵌在HTML里就不行?而且浏览器访问PHP文件空白的问题,会不会和这个有关联?已经谷歌了很久,可能是漏掉了某个明显的配置点,希望大家能给点思路!
备注:内容来源于stack exchange,提问作者Rich Unsworth
相关产品推荐
相关产品推荐

