2015-06-06 21 views
0

我在test.php文件中寫了這段代碼。我的代碼是如何獨立工作的,但是當我將其與控制器合併時,我的代碼是如何工作的?

<?php 

include ($_SERVER["DOCUMENT_ROOT"].'/MySite/protected/MyYouTube/google/src/Google/autoload.php'); 

require_once ($_SERVER["DOCUMENT_ROOT"].'/MySite/protected/MyYouTube/google/src/Google/Client.php'); 
require_once ($_SERVER["DOCUMENT_ROOT"].'/MySite/protected/MyYouTube/google/src/Google/Service/YouTube.php'); 
?> 

如果我去這個文件是這樣的:localhost/MySite/protected/MyYouTube/test.php它的工作原理,但如果我相同的代碼複製到我的控制器位於同一文件夾下的test.php,我得到這個:

包括(Google_Service.php):未能打開流:沒有這樣的文件或目錄

沒有與進口沒有衝突。事實上,控制器和視圖可以是空的,但我仍然可以得到同樣的結果。

顯然這發生在autoload.php未實際加載時。

當代碼被整合到網站中時,它會引發這個錯誤嗎?

這就是我的網站的路徑: localhost/MySite/index.php/user/view看來,我訪問文件的方式很重要。


我嘗試了幾件事。我試圖將test.php導入到我的視圖或我的控制器中,但仍然出現相同的錯誤。我嘗試使用Yii::app()->basePath,它給出了同樣的問題。

路徑是正確的,我檢查了好幾次。我怎樣才能解決這個問題?

回答

0

包含路徑是實際的服務器路徑,而不是站點路徑,如果您在開始時使用/,則說明它要查看服務器根目錄。

如果你知道服務器的絕對路徑,你可以像使用它,如/var/www/MySitec:\mysite,如果你不知道,那麼你使用相對路徑。

0

$ _SERVER [「DOCUMENT_ROOT」]適用於PHP 5.3,不確定下面是否檢查您的版本。嘗試在MySite部分之前刪除'/',因爲變量已經爲你做了這樣的事情,所以它可能會打印像localhost/MySite,雖然我不知道這應該或不應該工作。 ]

另外自動加載的PHP應該加載一個require_once函數,而不是include。祝你好運!