我正在寻找一种能够在不知道扩展名的情况下显示图像文件的方法。 我找到了一个找不到文件的解决方案; s扩展,现在我需要扩展名。
$result = glob('uploads/logo_'.$row['id'].'.*');
if(is_array($result))
{
echo '<p><img src="uploads/logo_'.$row['id'].'.???" height="75"></p>';
}
答案 0 :(得分:1)
好吧,当你使用glob时,你已经拥有了文件的完整路径,包括文件扩展名。
我已经在飞行中编写了一些代码(我还没有测试过):
显示所有匹配的图像:
$result = glob('uploads/logo_'.$row['id'].'.*');
if(!empty($result))
{
foreach ($result as $file) {
if (@is_array(getimagesize($file))) {
$relativePath = end(explode('/', $file));
echo '<p><img src="uploads/' . $relativePath . '" height="75"></p>';
}
}
}
-
显示第一张匹配的图像:
$result = glob('uploads/logo_'.$row['id'].'.*');
if(!empty($result))
{
$file = current($result);
if (@is_array(getimagesize($file))) {
$relativePath = end(explode('/', $file));
echo '<p><img src="uploads/' . $relativePath . '" height="75"></p>';
}
}
请考虑我排除无图像文件。如果您确定根本没有非图像文件,则可以跳过@is_array(getimagesize($file))
条件
答案 1 :(得分:1)
你基本上写了解决方案。 glob
实际上返回匹配的文件名。
$result = glob('uploads/logo_'.$row['id'].'.*');
// glob returns an empty array if no matching files are found,
// so we need to check if the result is empty or not.
if (is_array($result) && count($result) > 0) {
// We got at least one match, let's use the first one
echo '<p><img src="'. $result[0] .'" height="75"></p>';
}