Magento失败了require_once php文件

时间:2013-10-09 10:11:17

标签: php magento fopen

我在Magento中尝试require_once一个php文件,这样我就可以使用文件中的函数了。无论我在哪里放置php文件,或者我试图要求它,都会出现同样的错误:

Fatal error: require_once(): Failed opening required 'http://127.0.0.1/ezzence/functions.php' (include_path='C:\wamp\www\ezzence\app\code\local;C:\wamp\www\ezzence\app\code\community;C:\wamp\www\ezzence\app\code\core;C:\wamp\www\ezzence\lib;.;C:\php\pear') in C:\wamp\www\ezzence\app\design\frontend\default\theme317\template\page\html\head.phtml on line 28

PHP文件只包含一个函数,因此php文件本身不是问题。这就像PHP无法找到我的php文件。我试着像这样要求:

<?php require_once($this->getBaseUrl() . 'functions.php');?>

最初我希望文件位于 skin/theme/default/inc/ ,但出于测试目的,我将其移至root。

我已经检查过我的php.ini中有allow_url_fopen = On,但我不知道是否会影响require_once方法。

欢迎任何建议。在此先感谢:)

2 个答案:

答案 0 :(得分:1)

getBaseUrl函数用于获取URL而不是PATH

Mage::getBaseDir()

此函数返回正确的magento安装路径

答案 1 :(得分:1)

你不能在http上包含一个php文件。这是错的:

required once 'http://example.com/some_file.php'

我认为这就是你要找的东西:

require_once($this->getBaseDir() . 'functions.php'

但这也不是Magento的做法。您应该创建一个模块并将该函数放在帮助器中。然后,您可以调用该函数,而不需要require_once语句,如下所示:Mage::helper('helper_alias_here')->doSomething()

编辑 并略微偏离主题
如果以正确的方式使用Magento,除非重写控制器类,否则不需要使用require语句。