我的问题与我认为的php.ini
文件有关,但可能还有其他问题。
假设我们有一个站点架构,在根目录中有另一个名为img
的目录和一个名为index.php
的文件。在目录img
内,有一个名为image.jpg
的文件。
所以在index.php
中,为了引用图片,我会使用/img/image.jpg
。
我的问题是,我应该在php.ini
更改哪些内容才能编写img/image.jpg
而不是/img/image.jpg
。
谢谢
答案 0 :(得分:2)
相对路径由Web浏览器解析,而不是由PHP解析。无法在Web服务器上覆盖此行为。
答案 1 :(得分:1)
PHP无法做到。你可以用Apache重写来实现这一点,但是使用绝对路径更有意义。您不应该尝试混合绝对路径和相对路径,因为它将来只会给您带来问题。将'/'添加到路径前面有什么问题?
不仅如此,但它会让那些试图调试代码的人感到困惑,因为所有相对路径都成为Apache中的绝对路径。
答案 2 :(得分:0)
我的问题是,我应该在php.ini中更改什么才能编写
img/image.jpg
而不是/img/image.jpg
。
这是回答你的问题,但不是你想听到的答案。这很简单,让我们先列出ini设置:
auto_prepend_file
(可能与include_path
一起使用)就是这样。工作原理:
使用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 。