如何连接php中不同文件夹的php文件?

时间:2015-06-17 03:14:35

标签: php amazon-web-services

你能帮我连接不同文件夹的php文件..

我有一个主文件夹示例然后在其中我有2个文件夹命名0libPortal

在文件夹0lib内有文件夹amazon,其中有文件夹MockModelSamples和一些php个文件例如Client.phpModel.php

在文件夹Portal内,我有productFeed.php

我已使用include()require()连接这些文件。我也使用自动加载类...它们似乎没问题但是当我运行它时错误说...

  

致命错误:第68行的/var/www/html/sample/0lib/amazon/Samples/SubmitFeedSample.php中找不到“amazon_Client”类

SubmitFeedSample.php位于文件夹0lib->amazon->Samples->SubmitFeedSample.php

这是我的自动加载类代码:

 function __autoload($className){
    $filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
    $includePaths = explode(PATH_SEPARATOR, get_include_path());
    foreach($includePaths as $includePath){
        if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){
            require_once $filePath;
            return;
        }
    }
}

我认为自动加载是问题所在。

1 个答案:

答案 0 :(得分:0)

通过进行一项更改,我的功能可以正常工作:

var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj, null, 2));
$('<a id="downloadLink" href="data:' + data + '" download="data.json">download file</a>')

修改

该功能有效,但我认为您缺少相对(或绝对)路径。尝试创建一个function __autoload($className){ $filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php'; $includePaths = explode(PATH_SEPARATOR, get_include_path()); foreach($includePaths as $includePath){ // Assign the compiled file path here if(file_exists($classdir = $includePath . DIRECTORY_SEPARATOR . $filePath)){ // Don't use $filePath but rather newly assigned $classdir require_once($classdir); return; } } } 文件,您可以将其包含在将设置根路径的所有页面中:

<强>根/ config.php中

config.php

<强>根/一些/ document.php

define("ROOTDIR",__DIR__);
spl_autoload_register('__autoload');

<强>功能.__自动加载()

include_once(__DIR__.'/../config.php');

$test = new test_Test();

test_Test类:

此课程必须在此处:function __autoload($className) { $filePath = str_replace('_',"/",$className).'.php'; // This would yield something like: // /data/19/2/133/150/2948313/user/3268049/htdocs/mydomain/test/Test.php $classdir = ROOTDIR."/".$filePath; if(file_exists($classdir)) { require_once($classdir); return; } }