我正在尝试更改默认路径或添加网络服务器查找图片的路径。我真的很想在PHP中做一个解决方案,而不是在htaccess中。
最基本的例子是尝试“打破”当前的实现,所以说我有一个目录,其中包含以下内容:
主要/
在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?!?! -->
如果您理解我的观点或者您有任何疑问,请告诉我。
谢谢大家! 马特穆勒
答案 0 :(得分:5)
我认为您对服务器文件系统和Web服务器文档根目录上的当前工作目录感到困惑。
在HTML中创建图像元素时,它(浏览器)会根据一些参数查找源。
<base>
元素URL加载(如果已设置),否则为当前URI <img src="/foo/bar/baz.jpg">
将从http://example.com/foo/bar/baz.jpg加载答案 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 />
之后