我目前正以这种方式使用图像:
第一种方法
这是图像与其数据库令牌之间的直接链接:它返回图像。这种方法并不关心图像是否存在。
$token = "abc";
echo "<img src='images/$token/image.jpg' />";
我想知道这是否会更好:
第二种方法
$token="abc";
$image_url="images/$token/image.jpg";
if(file_exists($image_url)){
echo "<img src='$image_url' />
}else{
echo "<img src='icons/no-image.png' />
}
或另一种方式
第三种方法
$token = "abc";
$files = glob("images/$token/".'/*.{jpg,png,gif}', GLOB_BRACE);
foreach($files as $file) {
echo "<img src='$file' />
}
我目前正在使用第一种方法,您会更推荐这种方法,为什么?
答案 0 :(得分:0)
我认为,如果您只想显示一张图片,则第二种方法很好。 此外,如果令牌不存在,您也会遇到这种情况。
如果要显示一个或多个图像但是,而您忘记检查 $ files 是否为空,则第三个也很好。
因此正确的解决方案取决于您的需求。
我能回答你的问题吗?
答案 1 :(得分:0)
glob
正在寻找3种文件格式。 file_exists
仅在查找请求的文件。 file_exists
将占用较少的资源进行处理(尽管可能不会引起注意)。如果<img
调用不存在,则会在页面上显示损坏的图像。
我会选择file_exists
,除非格式不同,否则您需要选择glob
。
这是缩短的file_exists
版本:
$image_url="images/$token/image.jpg";
$image_output = file_exists($image_url) ? "<img src='$image_url' />" : "<img src='icons/no-image.png' />";
echo $image_output;