我正在使用PHP爲PHP應用程序本身解壓更新。這是通過從更新服務器抓取一個zip文件,解壓縮它,然後遞歸地將解壓縮的文件移動到應用程序當前存在的文件上來完成的。PHP __FILE__爲移動的文件提供了錯誤的位置
問題是我下次去使用應用程序時,__FILE__(至少在一個新文件中)給出了zip文件最初解壓縮到的目錄中的位置。由於這不是文件的實際位置,因此在隨後的使用__FILE__查找當前目錄的require函數調用中出現錯誤。
最奇怪的部分:我所要做的就是在編輯器中打開文件並重新保存(例如添加和刪除空間),然後PHP將正確解析文件路徑。
任何可能出錯的想法?看起來不知何故,PHP「知道」文件來自哪裏,並且正在獲取該信息而不是它當前所在的位置。重新保存文件會使PHP(或者文件系統)醒來。
這將有助於瞭解問題所在的文件系統和操作系統。 –
另外如果你發佈了你的代碼 –
對不起,操作系統是linux ubuntu,文件系統是ext3。唯一相關的代碼是對__FILE__的引用,以獲取包含在許多其他無用代碼中的require語句中的目錄路徑。我會嘗試獲得一個較小的測試示例並將其發佈到此處。 – juacala