我编写了以下代码并获得了以下结果,但我不明白为什么。我也不知道或在网上找到任何解决方案。理想情况下,我希望它能以四种方式运作。
<?php
// Note: the file containing this script is located in
// "http://www.example.com/code.php" and the directories as
// listed below are all correct in relation to this script.
$link1 = "https://www.example.com/folder/image.png";
$link2 = "http://www.example.com/folder/image.png";
$link3 = "/folder/image.png";
$link4 = "folder/image.png";
var_dump(getimagesize($link1),file_exists($link1));
// returns bool(false) bool(false)
var_dump(getimagesize($link2),file_exists($link2));
// returns bool(false) bool(false)
var_dump(getimagesize($link3),file_exists($link3));
// returns bool(false) bool(false)
var_dump(getimagesize($link4),file_exists($link4));
// returns array(6) { [0]=> int(192) [1]=> int(250)
// [2]=> int(3) [3]=> string(24) "width="192" height="250""
// ["bits"]=> int(8) ["mime"]=> string(9) "image/png" }
// bool(true)
echo "<img src=\"$link1\" />";
echo "<img src=\"$link2\" />";
echo "<img src=\"$link3\" />";
echo "<img src=\"$link4\" />";
?>
在所有四个实例中,图像都使用<img>
标记正确显示。
答案 0 :(得分:1)
<强>已更新强>
$link3
无效,因为file_exists()
正在寻找/folder/
一直回到您的根目录。 file_exists()
不会以与浏览器相同的方式处理(相对)路径。
因此,file_exists('/folder/image.png')
并非源于您的公共目录,它以与您在/home/username/public_html/
或{{1}中输入的方式一致的方式生根知道我的意思吗?
输入/var/www/website/
即可。
如果您尝试向相关资产添加file_exists('/path/to/your/public/dir/folder/image.png');
链接,file_exists()
将始终返回false。它只解析服务器目录路径结构中的绝对路径。