首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php chdir()真实函数

php chdir()真实函数
EN

Stack Overflow用户
提问于 2013-08-15 13:57:14
回答 2查看 90关注 0票数 0

我正在开发一个joomla模块,在这个模块中我访问外部文件(ajax调用)时遇到了路径问题“致命错误:在C:中找不到类'JFactory‘”,但经过几天的搜索,我终于找到了真正的解决方案。以下是代码

代码语言:javascript
复制
define( '_JEXEC', 1 );
chdir("../../");
getcwd();
define('JPATH_BASE', getcwd() );

define( 'DS', DIRECTORY_SEPARATOR );

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

global $mainframe;

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

现在我试图理解代码中发生了什么,除了chdir("../../");是如何工作的这一点之外,所有的事情都很清楚。是否更改了包含该代码的文件的目录??(在我的例子中是getuser.php)还是它改变了joomla核心文件的路径,如defines.php和framework.php??到底是怎么回事?如果你们有任何其他的解决方案或者对现有代码的修改比我的更好,所以请与我分享,我将非常感谢。

还有一件事,如果我改变了,会有什么影响

代码语言:javascript
复制
$mainframe =& JFactory::getApplication('site') to $mainframe =& JFactory::getApplication('administrator') 

因为我改变了它,但它对结果没有任何影响。

EN

回答 2

Stack Overflow用户

发布于 2013-08-15 14:02:53

不会直接更改您显式指定的。你有一个致命的错误,因为PHP不能找到你的JFactory类文件。修改路径,使其引用类文件。

票数 0
EN

Stack Overflow用户

发布于 2013-08-15 14:08:42

假设您使用的是Joomla 2.5+,您应该通过以下方式包含Joomla框架

代码语言:javascript
复制
define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18247109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档