php.ini的问题

时间:2011-09-22 00:54:01

标签: apache xampp php

我的问题与我认为的php.ini文件有关,但可能还有其他问题。

假设我们有一个站点架构,在根目录中有另一个名为img的目录和一个名为index.php的文件。在目录img内,有一个名为image.jpg的文件。

所以在index.php中,为了引用图片,我会使用/img/image.jpg

我的问题是,我应该在php.ini更改哪些内容才能编写img/image.jpg而不是/img/image.jpg

谢谢

3 个答案:

答案 0 :(得分:2)

相对路径由Web浏览器解析,而不是由PHP解析。无法在Web服务器上覆盖此行为。

答案 1 :(得分:1)

PHP无法做到。你可以用Apache重写来实现这一点,但是使用绝对路径更有意义。您不应该尝试混合绝对路径和相对路径,因为它将来只会给您带来问题。将'/'添加到路径前面有什么问题?

不仅如此,但它会让那些试图调试代码的人感到困惑,因为所有相对路径都成为Apache中的绝对路径。

答案 2 :(得分:0)

  

我的问题是,我应该在php.ini中更改什么才能编写img/image.jpg而不是/img/image.jpg

这是回答你的问题,但不是你想听到的答案。这很简单,让我们先列出ini设置:

  1. auto_prepend_file(可能与include_path一起使用)
  2. 就是这样。工作原理:

    使用ini指令预先安装php脚本。在该文件中,您start output使用自己的回调函数进行缓冲:

    function callback($buffer)
    {
      // slash that image that you want to write without slash
      return (str_replace("img/image.jpg", "/img/image.jpg", $buffer));
    }
    
    ob_start("callback");
    

    您现在可以编写img/image.jpg而不是/img/image.jpg,因为输出过滤器功能会为您重写。

    但请注意,你不是试图用这个来解决错误的结局。适用超文本引用的一般规则,请参阅Uniform Resource Identifier (URI): Generic Syntax Hypertext Transfer Protocol -- HTTP/1.1 Hypertext Markup Language - 2.0