Php 为什么我的代码是单独工作的,但当我将其与控制器合并时却不能工作?
我在Php 为什么我的代码是单独工作的,但当我将其与控制器合并时却不能工作?,php,yii,google-api-php-client,Php,Yii,Google Api Php Client,我在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 ($
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
位于同一文件夹下的控制器中,我会得到以下结果:
include(Google_Service.php):无法打开流:没有这样的文件或
目录
与进口产品没有冲突。事实上,控制器和视图可以是空的,但我仍然得到相同的结果
显然,当没有实际加载autoload.php
时,就会发生这种情况
当代码集成到网站中时,怎么可能抛出此错误
这就是我的站点的路径:
localhost/MySite/index.php/user/view
看来我访问文件的方式很重要。
我试过几种方法。我尝试将
test.php
导入到我的视图或控制器中,但仍然收到相同的错误。我试着使用Yii::app()->basePath
,它给出了同样的问题
路径是正确的,我已经检查过好几次了。如何修复此问题?包含路径是实际的服务器路径,而不是站点路径,如果您在开始时使用/,则告诉它查看服务器根目录 如果你知道服务器中的绝对路径,你可以像
/var/www/MySite
或c:\MySite
那样使用它,如果你不知道,那么你可以使用相对路径。$\u服务器[“DOCUMENT\u ROOT”]与PHP5.3配合得很好,不确定下面是否检查了你的版本。请尝试删除MySite部分之前的“/”,因为变量已经为您执行了此操作,因此它可能会像localhost//MySite一样打印,尽管我不确定这是否有效。]
此外,自动加载的php应该加载require_once函数,而不是include函数。祝你好运