我正在尝试找到一种方法使include_once();
路径从开始目录开始,然后找到路径,例如而不是../../../path/to/file
我会/path/to/file
。如果我这样做/path/to/file
它没有说这样的文件或目录,这是我的直接代码
<?php
include_once("/assets/page_assets.php");
?>
答案 0 :(得分:12)
如果您有Apache服务器
<?php
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php");
?>
"/assets/page_assets.php"
表示from the root of the disk
,而不是服务器的根文件夹。如果您正在讨论其他beginning directory
,那么将物理路径(服务器的文件系统中的路径,而不是Web路径)定义为单独的常量/变量,并将其添加到包含的路径中,如上所示。
答案 1 :(得分:2)
您可以明确指定包含路径:
<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?>
但正如Cheery在评论中提到的那样,你必须包含你的文件,而不是带领斜杠:
<?php
include_once("assets/page_assets.php");
?>
答案 2 :(得分:1)
要执行此操作,您必须使用根目录中的路径。在某些情况下,这可能看起来像/var/www/mysite.com/assets/page_assets.php
。找到该路径的一种方法是使用__FILE__
(前面和后面都有2个下划线)。如果您从文件中回显它,它将显示完整路径。您应该可以使用它来设置正确的完整路径。
答案 3 :(得分:0)
使用chdir($_SERVER['DOCUMENT_ROOT']);
现在您可以致电include("path/to/file.php");
,它将从webroot开始查看。