我正在使用 PHP 解压缩 PHP 应用程序本身的更新。这是通过从更新服务器获取一个 zip 文件,解压缩它,然后递归地将解压缩的文件移动到应用程序当前存在的文件上来完成的。
问题是我下次使用该应用程序时,__FILE__(在至少一个新文件中)给出了最初解压缩 zip 文件的目录中的位置。由于这不是文件的实际位置,因此在使用 __FILE__ 查找当前目录的后续 require 函数调用中出现错误。
最奇怪的部分:我所要做的就是在编辑器中打开文件并重新保存(例如添加和删除空格),然后 PHP 将正确解析文件路径。
有什么想法可能会出错吗?似乎PHP以某种方式“知道”文件来自哪里并且正在获取该信息而不是它当前所在的位置。重新保存文件会使 PHP(或者可能是文件系统)唤醒。