Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在不知道扩展名的情况下设置img src_Php_Html - Fatal编程技术网

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

Php 在不知道扩展名的情况下设置img src,php,html,Php,Html,因此,我在服务器中有一些图像(public_html/img/profile_pictures/) 这是我当前设置图像的方式: echo "<img src='img/profile_pictures/main_photo.png'/>"; echo”“; main_photo可以每天更改,但是如果它更改为main_photo.jpg insted,它将不会显示(因为扩展名是在该行上硬编码的(.png)。是否可以在不知道图像文件扩展名的情况下显示照片?如果需要

因此,我在服务器中有一些图像(public_html/img/profile_pictures/)

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

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

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

如果需要PHP代码,请尝试此操作。此代码将在文件夹中查找
main\u 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'/>

您可以直接将这个if语句内联,但混合使用业务逻辑和格式逻辑是不好的做法,因此,我建议您为其编写一个类。

您可以查看PHP,其中存在一个fild类型扩展名,并且只有MAKE一个回音。如果您可以确保服务器返回具有正确MIME类型的图像,则可以不给该文件任何扩展名。您还可以让PHP检查任何一个文件是否存在并在HTML中设置正确的扩展名,或者使用php脚本作为“图像”,只返回对任一图像的重定向。关键是如何稳定地获取图像的最新正确URL。如果文件夹中有“几个图像”,如何确定哪个是正确的?@CherryDT这样图像就不需要扩展名了?
<img src='img/profile_pictures/main_photo.jpg'/>
$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';
}