$ _SERVER [“ DOCUMENT_ROOT”]在echo内部vs src内部时,图像未加载

时间:2018-12-09 19:49:43

标签: php html

为什么这样做:

<img src='<?php $_SERVER["DOCUMENT_ROOT"];?>/images/image.png' width=50 height=50>

但这不是:

$documentroot = $_SERVER['DOCUMENT_ROOT'];
echo("<img src='$documentroot/images/image.png' width=50 height=50>");

两个文件路径均正确。问题是,第一个加载图像时,第二个加载缩略图错误,当图像加载失败时。

1 个答案:

答案 0 :(得分:0)

您在这里有两个不同(但相关)的实体:

$_SERVER['DOCUMENT_ROOT']为您提供文件存储所在的服务器的本机操作系统路径,例如/var/www/mysite/public。公众永远不要看到这一点。

src属性包含图像的地址。这可以是以http://开头的完整地址,以/开头的绝对路径或相对路径。

在以斜杠开头的情况下,它被解释为锚定在文档根目录中。也就是说,src="/images/foo.png"意味着您的文件实际上存储在/var/www/mysite/public/images/foo.png中。您不需要添加/var/www/mysite/public部分-网络服务器会为您完成此操作。