php require_once 文件路径中的变量
Posted
技术标签:
【中文标题】php require_once 文件路径中的变量【英文标题】:Variable in php require_once file path 【发布时间】:2012-03-27 00:54:00 【问题描述】:如何将文件路径的下面和替换部分作为变量?
require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/directory2/directory3/file.php';
我想用变量 $dir2 替换 directory2。像下面这样简单地插入变量是不行的?
require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/$dir2/directory3/file.php';
谢谢。
【问题讨论】:
【参考方案1】:在 PHP 中有两种方法可以做到这一点。
require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/'.$dir2.'/directory3/file.php';
或者
require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
区别在于使用 ' 或 " 表示字符串。使用 ' 时,您需要像示例中那样连接变量,就像您已经使用 $_SERVER['DOCUMENT_ROOT'] 所做的那样。使用 " 时,您可以将变量放在字符串“原样”,甚至做这样的事情(对数组有用):
require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$_SERVER["HTTP_HOST"]/directory3/file.php";
【讨论】:
【参考方案2】:使用"
会解析变量。
"/directory1/$dir2/directory3/file.php"
而不是依赖$_SERVER['DOCUMENT_ROOT']
,您应该执行diranme(__FILE__)
或__DIR__
(>= 5.3) 之类的操作来定义根目录。
【讨论】:
【参考方案3】:单引号防止变量替换。使用双引号:
require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
【讨论】:
【参考方案4】:基本 php 语法:用'
引用的字符串不插入变量。改用"
-quoted 字符串:
require_once $_SERVER['DOCUMENT_ROOT'] . "/directory1/$dir2/directory3/file.php";
^--- ^---
或使用字符串连接:
require_once $_SERVER['DOCUMENT_ROOT'] . '/directory1/' . $dir2 . '/directory3/file.php';
【讨论】:
以上是关于php require_once 文件路径中的变量的主要内容,如果未能解决你的问题,请参考以下文章
Require_once 外部变量并与 php 类中的其他函数共享