2012-05-28 105 views
3

好吧未定義功能,這是我的代碼是什麼樣子呼叫從另一個php文件

的index.php

require_once($WebsiteRoot . "/include/testfile.php"); 
TestFunction(); 

/include/testfile.php

function TestFunction() 
{ 
    echo "It Works"; 
} 

它給我的錯誤:

Fatal error: 
Call to undefined function TestFunction() in /path/index.php on line 49 

任何想法我做錯了什麼? 謝謝

+1

給出這些信息的唯一解釋是你沒有包含你認爲你包含的文件。 – JJJ

+2

'echo $ WebsiteRoot。 「/include/testfile.php」;'你看到了什麼? – Sampson

+0

如果您的index.php託管在與include文件夾相同的文件結構級別上,則不需要$ WebisteRoot變量。我想這個錯誤來自於此。 – nullpointr

回答

1

確保你包含你認爲你的文件。如果您的index.php頁面看起來完全如您所述,那麼它不會返回任何內容。

如果你想從網站上的任何地方,而不用擔心相對位置鏈接到同一位置,然後在文件的開頭,就把:

$WebsiteRoot=$_SERVER['DOCUMENT_ROOT']; 

它應該可以正常工作,您的文件將位於http://mywebsite.com/include/testfile.php

+0

對不起,這不是問題,$ WebsiteRoot被定義爲網站的網址 – user1071461

+0

其實,如果將$ WebsiteRoot設置爲$ _SERVER ['DOCUMENT_ROOT'],它似乎工作 – user1071461

+2

不要使用URL來包含本地文件!改用文件系統路徑。如果您使用URL獲取文件,服務器會解析文件而不是提供代碼。你可能通過這個空白文件。 – JJJ

1

嘗試從testfile.php調用另一個函數,如果這不工作,它的東西與包括。添加代碼:

error_reporting(E_ALL | E_WARNING | E_NOTICE); 
ini_set('display_errors', TRUE); 

到index.php的頂部並刷新瀏覽器以查看您的錯誤,請嘗試從那裏進行調試。

,我可以預見的是,您使用的網址,而不是一個路徑的問題,你的$ websiteRoot變量應包含類似的路徑:

$websiteRoot = "/var/www/html/websiteName"; 
OR 
$websiteRoot = "C://xampp/htdocs/websiteName"; 

,而不是一個網址,如:

$websiteRoot = "http://www.somesite.com"; 
+0

將此添加到索引的頂部。PHP我得到了相同的結果 – user1071461

+0

這些行不會解決你的問題,但顯示你的錯誤,從那裏你可以調試。我已經爲你更新了答案。 –

4

您沒有在包含的文件中包含<?php標記,因此它只是被解釋爲純文本輸入。

請記住......有沒有這樣的事情作爲一個PHP腳本。只有包含PHP代碼塊的文件。如果沒有至少一個<?php開始標記,PHP解釋器將永遠不會被調用,並且文件的內容將被簡單地視爲輸出。