你能帮我连接不同文件夹的php文件..
我有一个主文件夹示例然后在其中我有2个文件夹命名0lib
和Portal
。
在文件夹0lib
内有文件夹amazon
,其中有文件夹Mock
,Model
,Samples
和一些php
个文件例如Client.php
,Model.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;
}
}
}
我认为自动加载是问题所在。
答案 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;
}
}