我正在繼承一個網站,只是將所有內容切換到php7。由於此開關,我一直在發現很多錯誤。一個錯誤是函數simplexml_load_file()沒有返回任何東西。我向它傳遞了一個變量,該變量已設置爲服務器上的文件路徑(即/dir/dir/dir/template.xml)。但是當這個函數被調用時,它不會返回任何值,既不是我們想要的對象也不是一個0來表示它失敗。SimpleXML模塊在重新啓動時消失
我沒有經驗的PHP,所以我很難找出出了什麼問題。我在網上檢查器中檢查了文件template.xml中的錯誤,但沒有發現任何錯誤。我檢查了文件路徑是否正確,但我想知道/dir/dir/dir/template.xml的格式是否有誤。我見過的這個問題的所有例子都處理了一個url而不是本地文件。
的準確代碼行是:
$xml = simplexml_load_file($TempleteXml) or die("Unable to load configuration data!");
,我已經嘗試過將它分解,以確保模具()是沒有問題的。
編輯:我在發生此問題的代碼中找到了另一個地方。這是另一個文件,其中以完全相同的方式調用相同類型的文件。
編輯:我終於能夠得到一個錯誤,告訴我發生了什麼。問題是:「未捕獲的錯誤:調用未定義的函數simplexml_load_file()...」因此,出於某種原因,即使在NetBeans上,我也不知道在哪裏可以找到該文件,所以我能夠確切地知道它在哪裏聲明。接下來我將研究這一問題。
編輯:原來,這是一個常見的問題。出於某種原因,當更新到php7.0時,未安裝SimpleXML(這是該函數所在的擴展名)。我發現這裏:PHP 7 simpleXML 但是,當我這樣做最初「php -m」顯示SimpleXML被列爲啓用,但是當我重新啓動apache2 SimpleXML然後消失。有誰知道爲什麼一個PHP模塊會在重新啓動時消失嗎?
我今天在服務器上使用了一個絕對的文件路徑,在PHP 7下,它的工作方式和預期一樣,所以不應該成爲問題。使用'is_file($ TemplateXml)'檢查腳本是否可以找到該文件? –
返回1.因此它可以找到該文件。這是一個好的開始。 – khm
你有錯誤報告和顯示錯誤嗎?檢查日誌文件的任何線索? –