我从一个函数获取图像 url。我需要找到图像的扩展名。有时图像 url 带有诸如 之类的参数http://slimages.macys.com/is/image/MCY/products/4/optimized/1776484_fpx.tif?$filterlrg$&wid=370。因此,文件扩展名就像tif?$filterlrg$&wid=370. 我怎样才能获得准确的扩展名。
下面是我的代码
<?php
$srcimg = 'http://slimages.macys.com/is/image/MCY/products/4/optimized/1776484_fpx.tif?$filterlrg$&wid=370';
$fullpath = basename($srcimg);
$userImageDetails = pathinfo($fullpath);
$extension = strtolower($userImageDetails['extension']);
echo $extension;
?>
Run Code Online (Sandbox Code Playgroud)
您可以按照此答案parse_url()中的建议使用
$link = 'http://slimages.macys.com/is/image/MCY/products/4/optimized/1776484_fpx.tif?$filterlrg$&wid=370';
if ($url = parse_url($link)) {
echo pathinfo($url['path'], PATHINFO_EXTENSION);
}
Run Code Online (Sandbox Code Playgroud)
tif
Run Code Online (Sandbox Code Playgroud)
如果没有第二个参数,parse_url则返回一个关联数组,但如果您只需要路径,则可以传递第二个参数parse_url($link, PHP_URL_PATH),它将返回一个变量。
if ($path = parse_url($link, PHP_URL_PATH)) {
echo pathinfo($path, PATHINFO_EXTENSION);
}
Run Code Online (Sandbox Code Playgroud)