2012-07-24 146 views
0

我有兩個文件的工作 - a.php只會包含類的背景,以及b.php包括a.php只會。 *在a.php中,在類範圍外,有一個echo語句「背景檢查」。PHP包括不工作

當我打開b.php,我可以看到輸出的「背景調查」,但是當我嘗試創建一個背景對象出現下一個警告消息:

Fatal error: Class 'Background' not found in .... 

下面是B A代碼示例。 PHP:

<?php 
     include ('http://localhost/wT/sf/a.php'); 
     $url2="http://www.google.com"; 
     $b = new Background($url2); 
?> 
+0

什麼a.php只會看likke? – 2012-07-24 13:35:48

+0

包括從網站甚至工作? – Ron 2012-07-24 13:50:47

+0

這是不可能包含一個url – David 2012-07-24 13:37:11

回答

4

如果http://localhost/wT/sf/a.php輸出(在網頁瀏覽器)是不是PHP源代碼,那麼你包括將無法正常工作。你可能(在你的情況下)必須從文件系統中包含文件,而不是通過HTTP地址。

+0

include函數返回一個錯誤: 未能打開流:沒有這樣的文件或目錄 – Itamar 2012-07-24 13:43:51

+0

可能要確保文檔根目錄中'include_path'上市。然後,只包括相對於它的東西。 – cHao 2012-07-24 13:49:56

+0

或者只是使用文件的絕對路徑來包含它。 – Crontab 2012-07-24 14:39:44

3

使用的包括相對路徑,的URL。

換句話說,要包括的文件必須在同一臺服務器上(或能夠在同一臺服務器上,可以訪問),你是把它放置在文件中。

+0

將包括作品雖然,監守我可以看到從a.php只會echo語句的輸出...問題是,我不能創建我在a.php只會 – Itamar 2012-07-24 13:38:11

+0

加載的PHP可執行內容的URL創建的對象可能工作,但它是錯誤的概念 – Ron 2012-07-24 14:35:34

1

嘗試是這樣的使這項工作:

<?php 
     include ('/var/www/wT/sf/a.php'); //your filesystem location to a.php 
     $url2="http://www.google.com"; 
     $b = new Background($url2); 
?> 
+0

包括使用文件系統的位置不起作用: 這裏的文件位置:wT/sf/a.php – Itamar 2012-07-24 13:41:58

+0

請發佈內容的a.php以更好地幫助你 – Kalpesh 2012-07-24 13:49:16

+0

文件位置不能是wT/sf/a.php,應該有些東西/ var/www/..你的服務器的根目錄是什麼? – Kalpesh 2012-07-24 13:50:47

0

您正在使用網絡的網址,而不是使用系統路徑類似

<?php 
     include ($_SERVER['document_root'].'/a.php'); 
     $url2="http://www.google.com"; 
     $b = new Background($url2); 
?> 
+0

更好'include dirname(__ FILE __)。'/ a.php';' – Ron 2012-07-24 14:33:29

0

在包括方法,你應該使用相對文件路徑

文件是基於給定或者如果沒有給出文件路徑,指定包含路徑上包括在內。如果在include_path中找不到該文件,include將最終在失敗之前檢入調用腳本自己的目錄和當前工作目錄。在包括結構會發出警告,如果它不能找到一個文件