【问题标题】:php require_once resetting to current working directoryphp require_once 重置到当前工作目录
【发布时间】:2011-01-24 08:11:58
【问题描述】:

这是一个长镜头,但我有一个类似这样的文件:

文档结构: /some/path/start.php

<?php
require_once '../../another/path/test.php';
?>

/另一个/路径/test.php /另一个/路径/图像/

<?php 
test.php
hello<img src='images/1.jpg'>
?>

我正在寻找一种方法让所需文件 (test.php) 正确加载图像(基本上重置它认为是当前目录的目录)。我不想强迫人们使用绝对路径,也不想在其中添加一些变量。是否有一个 php 构造来处理这个问题?我正在使用 Zend_Framework。也许反过来,一个具有多个 index.php 文件的构造,这些文件通过绝对路径映射到我的 Zend Framework 启动脚本。

任何想法将不胜感激?我有以下有一个优雅的 sol'n - 我只是没有看到它。

【问题讨论】:

    标签: php


    【解决方案1】:

    我总是用:

    require_once(dirname(__FILE__).'/path/to/other/script/relative/to/this/file.php');
    

    或者在你的情况下:

    require_once(dirname(__FILE__).'../../another/path/test.php');
    

    这样你就可以确定你正在包含相对于你正在编辑的文件。

    【讨论】:

      【解决方案2】:

      我不确定我是否理解正确——如果我没有理解,请原谅我——但我认为你对包含和生成的 HTML 文档之间的关系有误。 HTML 文档中的所有链接都相对于其 URL。 URL 是否从包含中输出,以及该包含驻留在哪个中,完全无关紧要。

      您可能需要找出您当前的网络根目录,并输出与之相关的图片链接。

      【讨论】:

      • 是的,考虑一些可能的解决方法 - 我可以符号链接到目录或在 mod_rewrite 级别管理路径,但这些看起来有点麻烦。也许使用 jquery,如果它们是相对的,则将特定容器中的所有 img 变量设置为它们的绝对对应项。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 2017-02-26
      相关资源
      最近更新 更多