更改Web服务器查找映像的默认路径

时间:2010-10-27 00:25:57

标签: php directory default chdir

我正在尝试更改默认路径或添加网络服务器查找图片的路径。我真的很想在PHP中做一个解决方案,而不是在htaccess中。

最基本的例子是尝试“打破”当前的实现,所以说我有一个目录,其中包含以下内容:

主要/

  • image.png
  • 的index.php

index.php

<?php
// Change the directory WAY out of current directory
chdir('../../../');
echo getcwd(); // DEFINITELY NOT where image.png is located

?>

<img src="image.png" width="402" height="265" alt="1">
<!-- WHY ARE YOU STILL RENDERING?!?! -->

如果您理解我的观点或者您有任何疑问,请告诉我。

谢谢大家! 马特穆勒

4 个答案:

答案 0 :(得分:5)

我认为您对服务器文件系统和Web服务器文档根目录上的当前工作目录感到困惑。

在HTML中创建图像元素时,它(浏览器)会根据一些参数查找源。

  1. 如果src路径是相对的(没有前导斜杠),则图像将相对于<base>元素URL加载(如果已设置),否则为当前URI
  2. 如果src路径是绝对路径,则图像将从文档根目录的绝对路径加载,例如<img src="/foo/bar/baz.jpg">将从http://example.com/foo/bar/baz.jpg加载
  3. 如果src是绝对URI,那么它只是从
  4. 加载

答案 1 :(得分:2)

将img标记发送到客户端。 更改预处理器的目录不会更改客户端的目录,因为它固定在它们所在的当前页面上,例如http://example.com/

您需要更改每个img标记的src以更改要查看的目录。

为避免将来出现混淆,您可以使用一个前缀正确目录的函数。

e.g。

<img src = "<?php echo produceImageURL('image.png'); ?>" width = "402" height = "265" alt = "1" />

答案 2 :(得分:1)

PHP的相对路径是什么,页面的相对路径是两个不同的东西。

您更改了当前PHP脚本的目录。但是,请求的页面及其资源仍然相对于main/index.php

答案 3 :(得分:0)

jnpcl没错:

<base href="../../../">

在加载任何文件之前,<head> </head>通常在<meta />之后