php
  • include-path
  • 2012-06-19 117 views 0 likes 
    0

    我正在處理一個奇怪的PHP問題。PHP:找不到包含文件

    在我的劇本,我有以下幾點:

    $includeRoot = '/home/mydomain/include/'; 
    include_once $includeRoot."table_names.inc"; 
    
    echo $usersTbl; 
    

    輸出端產生了什麼。 $ usersTbl在table_names.inc中定義如下:

    $usersTbl = 'users'; 
    

    此代碼在另一個腳本中正常工作。我試過如下:

    更改include_once到require_once

    的問題似乎並沒有成爲該代碼無法找到該文件。如果我做到以下幾點:

    echo (file_get_contents($includeRoot."table_names.inc")); 
    

    它實際上呼應了文件內容。我在這裏沒有看到什麼?

    +1

    (1)爲什麼'_once'?它是否包含函數定義/是否包含在內? (2)文件是否以'<?php'開頭? – Wrikken

    +0

    它是file_get_contents()而不是file_get_content()。你看看是否有任何PHP錯誤? –

    +0

    曾經是因爲它還包含一些其他文件,所以這是爲了確保如果這些其他文件包含某些相同的文件,則不會有關於重新聲明的函數的投訴。所有文件都以<?php開頭,它們全部關閉?> – EastsideDeveloper

    回答

    1

    爲了幫助調試問題,請嘗試以下操作:

    if(file_exists($includeRoot . "table_names.inc")) { 
        die("Include file exists!") ; 
    } else { 
        die("Include file does not exist!") ; 
    } 
    

    至少會告訴你,如果文件和文件路徑實際存在。如果文件確實存在,那麼問題可能出現在您的實際包含文件中。如果它不存在,那麼請仔細檢查你的路徑。

    您可能還希望確保錯誤報告完全是在和傾倒到屏幕上:

    error_reporting(E_ALL); 
    ini_set('display_errors','On'); 
    
    +0

    我已經知道該文件存在,看到如果我這樣做: – EastsideDeveloper

    +0

    echo(file_get_contents(includeRoot。「table_names.inc」));它迴應了文件的內容。我已經試過if file_exists,它告訴我它存在。我會仔細檢查錯誤報告。 – EastsideDeveloper

    +0

    這聽起來很奇怪,但問題自行消失。我做的唯一事情就是把錯誤報告給ALL。在過去的8個小時裏,我一直在爲這個問題扯掉我的頭髮。我沒有向所有人報告錯誤,但仍然有效。我不明白。我應該擔心服務器上的病毒嗎? – EastsideDeveloper

    相關問題