PHP 在路径中包含一个变量

Posted

技术标签:

【中文标题】PHP 在路径中包含一个变量【英文标题】:PHP include with a variable in the path 【发布时间】:2012-10-16 03:09:35 【问题描述】:

因此,我们构建的网站必须从本地开发服务器移植到测试服务器,然后再移植到实时服务器。为此,我们创建了一个变量:

<?php $path = '/_Folder_/_SubFolder_'; ?>

当我们将网站从服务器移动到下一个时,想法是简单地更改 $path 定义以改造新的开发服务器。目前,当我们调用包含时,我们会在每个页面上写:

<?php include('../_includes/_css.php'); ?>

但我想做的是:

<?php include($path.'/_includes/_css.php'); ?>

我希望的结果是:

<?php include('/_Folder_/_SubFolder_/_includes/_css.php'); ?>

我一直在惨败,结果是:

警告:包含(/文件夹/_SubFolder_/_includes/_css.php)[function.include]:无法打开流:C:\Program Files\Apache Software 中没有这样的文件或目录Foundation\Apache2.2\htdocs\FREEDOM2012_FREEDOM2012_DEFAULT_\accommodations\guest-rooms.php 第 15 行

其他问题我仍然需要通过调用“../”来包含变量源

<?php include('../_includes/_var.php'); ?>

如果有人对我如何更有效地做到这一点有任何见解,我将不胜感激。非常感谢您在回复中付出的时间、耐心和努力。

【问题讨论】:

您是否尝试过 echoing 将您提供给 include() 的字符串? 当您在 Windows 服务器上时,您需要使用反斜杠而不是斜杠。 【参考方案1】:

你为什么不永远动态地初始化你的 $path 变量并且与环境无关?

喜欢:

$path = dirname(__FILE__);

从 PHP 5.3 开始,您还可以使用与上述相同的 __DIR__ 快​​捷方式。

@见:http://www.php.net/manual/en/language.constants.predefined.php

【讨论】:

set_include_path php.net/manual/en/function.set-include-path.php 一起使用,您可以很好地引导它。并在您的包含中有不错的相对路径。【参考方案2】:

您需要显示上一个目录:

<?php include('../_includes/_css.php'); ?>

因为你有../,如果你的完整路径是css.php = /_Folder_/_SubFolder_/_includes/_css.php,那么你需要使用这个:

<?php $path = './_Folder_/_SubFolder_';
include($path.'/_includes/_css.php'); ?>

否则,首先显示文件_css.php的完整路径。

【讨论】:

以上是关于PHP 在路径中包含一个变量的主要内容,如果未能解决你的问题,请参考以下文章

Typeahead.js 在远程 url 中包含动态变量

如何在反应中包含外部javascript

在 Android 中查找路径中包含的点

clang在同一目录中包含多个搜索路径

基于固定相对路径在 zip 文件中包含目录结构

在 Visual Studio Express 2012 中包含路径