我得到了一张随机的图像,如下所示:

https://picsum.photos/200/200?random=61081

我怎样才能获得图像扩展名?JPG/PNG等?

我考虑过这个:$extension = pathinfo($file, PATHINFO_EXTENSION);美元,但行不通.

编辑:$extension = pathinfo($file, PATHINFO_EXTENSION);表示空字符串.

推荐答案

该链接只是生成的路径,而不是实际的文件路径.在这种情况下,响应应该包括接收到的内容的类型,如JSON、图像等.

You can read this using the 100 function.

$imageUrl = 'https://picsum.photos/200/200?random=61081';

$headers = get_headers($imageUrl, true); // data from response

$extension = 'undefined';
$contentType = $headers['Content-Type']; // response type

// if image/jpeg, then extension is .jpg
if ($contentType === 'image/jpeg') {
    $extension = 'jpg';
}

// ...

更多信息

get_headers() - PHP Docs (with example output, where can found Content-Type)
What is Content-Type - MDN Docs (this value is always MIME type)
What is MIME type - MDN Docs
List of MIME types - iana.org

100 - StackOverflow Answer

Php相关问答推荐

如何发送woocommerce订单跟踪码与短信

PHP中的圆生成器在国际日期变更线上失败

在WooCommerce中禁用客户用户角色的纳税计算

无法使用php IMAP从Gmail获取收件箱

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

只收取WooCommerce中最高的运费

WooCommerce中基于用户角色的不同产品差价

在WooCommerce中添加特定产品类型的百分比费用和固定费用

上传WordPress模板中的翻译文件(.mo和.po)

如何将LARAVEL模块路径和项目路径合并,因为当我使用模块路径时,它们会覆盖项目路径

CKEDITOR-如何在PHP中判断提交后的空数据

即使在WooCommerce购物车中添加了两次产品,也要将所有项目设置为空白行

Laravel处理belongToMany和额外字段

wp_insert_post() 和 WordPress 中查询字符串的多个帖子

如果在 APIPlatform 3.1 中的同一资源上使用处理器,Messenger 将无法工作

单个产品页面 WooCommerce 订阅价格字符串的更改

为什么 debug_backtrace() 不返回任何内容?

从 Laravel 机制中排除目录并直接访问该目录

在PHP WordPress插件中使用变量连接路径时的问题解决方法

输出每个可能的产品选项