我想为我的脚本实现一个简单的插件系统。我将包括用户选择的插件文件。
目前,如果任何文件有一些解析错误,它会导致完整的事情发生故障,直到我入侵数据库以删除该插件条目。
有没有简单的方法可以做到这一点? (以某种方式检查文件是否至少有解析错误)?
答案 0 :(得分:4)
您可以向尝试包含该文件的PHP文件发出HTTP请求,并在结尾输出“OK”。
Check_include.php:
$filename = $_GET["plugin"];
$filename = sanitize_filename($filename); // Here you make sure only plugins can be loaded
include ($filename);
echo "OK";
然后,在您的管理面板或其他任何地方,请致电
file_get_contents("http://mydomain/check_include.php?plugin=my_new_plugin");
并查看结果是否包含单词“OK”。如果结果没问题,则没有致命错误,您可以激活插件;否则,您甚至可以输出在尝试包含它时获得输出的错误消息。
WordPress使用了一个涉及IFRAME的变体来检查新的插件。
注意:发出HTTP请求很昂贵。在每次插入插件时,您都不应该这样做,但在安装时只应执行一次。使用某种标志(例如插件名称前面的下划线_
)来启用/禁用插件。
答案 1 :(得分:0)
没有。解析错误是您无法从中恢复的致命错误。