如何使用相对路径包含文件?

3

有一个文件目录如下:magento\app\design\frontend\default\template\catalog\product\view.phtml

另一个文件目录为:magento\blog\wp-blog-header.php

现在,如果我想在view.phtml中包含wp-blog-header.php,我该怎么做?谢谢。

include('../../../../../../../wordpress/wp-blog-header.php'); 
3个回答

2
您可以使用文档根目录("$_SERVER["DOCUMENT_ROOT"]")来获取文件路径。但是,这仅适用于您的应用程序安装在 web 服务器的基本目录中作为唯一应用程序的情况。如果您在子目录中运行应用程序,则需要进行调整。但是,这将使该应用程序不太可移植,因为您无法轻松更改目录而不必修改代码。
根据您的示例,看起来您正在运行 Magento。使用 Magento,您可以使用 "Mage::getBaseDir" 方法获取 Magento 的基本目录,并从其中相对地包括文件。

是的,我在Magento中使用它。您能否提供更多详细信息。谢谢。 - stack01

1

个人建议从根目录开始,不要使用../../这种方法。

include($_SERVER['DOCUMENT_ROOT'] . "/path-to-include-file");

你确定WordPress的页眉与Magento兼容吗?可能会出现一些可怕的异常情况。


1

这个方法可行,你只需要数一下斜杠的数量,确保与之前相同即可。不过,你也可以在magento\app\design\frontend\default\template\catalog\product\目录中创建一个符号链接,指向magento\blog\wp-blog-header.php

ln -s magento\blog\wp-blog-header.php wp-blog-header.php就可以解决问题了,然后你只需要:include ("wp-blog-header.php");

你还可以在你的include中引用$_SERVER["DOCUMENT_ROOT"]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接