在不知道扩展名的情况下设置img src



所以我在服务器中有一些图像(public_html/img/profile_pictures/(。

这就是我目前设置图像的方式:

echo "<img src='img/profile_pictures/main_photo.png'/>";

main_photo可以每天更改,但如果它改为main_photo.jpg,它就不会显示(因为扩展名是硬编码在该行(.png(上的(。是否可以在不知道图像文件扩展名的情况下显示照片?

如果你想要一个PHP代码,那么试试这个。此代码将在文件夹中查找main_photo.*,并在找到扩展名后自动设置扩展名。

记住正确设置路径

<?php
$yourPhotoPath = "img/profile_pictures/";
foreach (glob($yourPhotoPath.'main_photo.*') as $filename) {
$pathInfo = pathinfo($filename);
$extension = $pathInfo['extension'];
$fileName = chop($pathInfo['basename'], $extension);
echo "<img src='".$yourPhotoPath.$fileName.$extension."'/>";
}
?>

如果没有加载照片,则其宽度和大小为空。

虽然我建议您编写一个检查和加载图像的类,但我感觉您想要一个简单的解决方案。因此,假设照片是

<img src='img/profile_pictures/main_photo.png'/>

<img src='img/profile_pictures/main_photo.jpg'/>

这个路径和文件名都不会改变,文件夹中只有一张图片,

您可以简单地同时呼应两者

空的img将不会显示。一个更好的方法是编写一个类,加载你的照片并检查照片是否真的在那里,比如

$path = 'img/profile_pictures/main_photo.png';
if(!file_exists('img/profile_pictures/main_photo.png'))
{
//use the jpg path
$path = 'img/profile_pictures/main_photo.jpg';
}

你可以直接内联这个if case,但混合业务逻辑和格式逻辑是不好的做法,所以我建议你为它写一个类

最新更新