在HTML中,我可以通过以"/"开头的文件路径找到从Web服务器的根文件夹开始的文件.喜欢:
/images/some_image.jpg
Run Code Online (Sandbox Code Playgroud)
我可以将该路径放在任何子目录中的任何文件中,它将指向正确的图像.
使用PHP,我尝试了类似的东西:
include("/includes/header.php");
Run Code Online (Sandbox Code Playgroud)
......但这不起作用.
我认为这个页面说的是我可以设置include_path
一次,之后,它将被假设.但我不太懂语法.这两个例子都以句号开头,它说:
用一个 .在include路径中允许相对包含,因为它表示当前目录.
相对包含正是我不想要的.
如何确保我的所有包含指向该root/includes
文件夹?(额外奖励:如果我想将该文件夹放在公共目录之外怎么办?)
我的开发文件目前由XAMPP/Apache提供.这会影响绝对路径吗?(我不确定生产服务器是什么.)
我不知道我的问题在这里.include_path
我上面引用的东西正是我所寻找的,语法并不是真的令人困惑.我只是尝试过,效果很好.
我发生的一件事是,有些人可能认为"/ some/path"是"绝对路径",因为他们认为操作系统是Linux.此服务器是Windows,因此绝对路径必须以驱动器名称开头.
无论如何,问题解决了!:)
Rob*_*use 46
我所做的是将config.php文件放在我的根目录中.我的项目中的所有PHP文件都包含此文件.在那个config.php文件中,我然后执行以下操作;
define( 'ROOT_DIR', dirname(__FILE__) );
Run Code Online (Sandbox Code Playgroud)
然后在所有文件中,我知道我的项目的根目录是什么,可以做这样的事情
require_once( ROOT_DIR.'/include/functions.php' );
Run Code Online (Sandbox Code Playgroud)
对不起,没有获得公共目录以外的奖励积分;)这也有一个不幸的副作用,你仍然需要一个相对路径来查找config.php,但它使你的其他包括更容易.
Nat*_*ong 25
我不知道这是不是最好的方式,但它对我有用.
$root = $_SERVER['DOCUMENT_ROOT'];
include($root."/path/to/file.php");
Run Code Online (Sandbox Code Playgroud)
include_path设置的工作方式类似于unix中的$ PATH(Windows中也有类似的设置).它包含多个目录名,由冒号(:)分隔.当您包含或要求文件时,将按顺序搜索这些目录,直到找到匹配项或搜索所有目录.
因此,为了确保您的应用程序始终包含您的路径(如果该文件存在),只需将include目录放在目录列表中.
ini_set("include_path", "/your_include_path:".ini_get("include_path"));
Run Code Online (Sandbox Code Playgroud)
这样,首先搜索include目录,然后搜索原始搜索路径(默认为当前目录,然后是PEAR).如果您在修改include_path时没有问题,那么这就是您的解决方案.
include / require中没有任何内容禁止您使用绝对路径。所以你的例子
include('/includes/header.php');
Run Code Online (Sandbox Code Playgroud)
应该可以正常工作。假设路径和文件正确并且设置了正确的权限。
(从而允许您在文档根目录内或外部包含您喜欢的任何文件)
然而,这种行为被认为是可能的安全风险。因此,系统管理员可以设置open_basedir指令。
该指令配置了您可以包含/需要文件的位置,这可能只是您的问题。
某些控制面板(例如 plesk)默认将此指令设置为与文档根目录相同。
至于'.'
语法:
/home/用户名/public_html <- 绝对路径 public_html <- 相对路径 ./public_html <- 与上面的路径相同 ../username/public_html <- 另一个相对路径
但是,我通常使用稍微不同的选项:
require_once(__DIR__ . '/Factories/ViewFactory.php');
Run Code Online (Sandbox Code Playgroud)
在此版本中,您可以指定相对于包含该语句的文件的绝对路径require_once()
。
归档时间: |
|
查看次数: |
100122 次 |
最近记录: |