我有一个cURL请求:
$ch = curl_init('http://domain.com/file.ext');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$response = curl_exec($ch);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$extension = '?' // How?
并希望根据内容类型获取网址的扩展名,但是如何获得?
我已经阅读了一些正则表达式,但是,如果我的文件有多个点或扩展名,例如:
file.renamed.with.multiple.dots.png
file.zip.rar
并且,如果我有file.ext
这样的文件且已知内容类型为image/png
,但扩展名不是png
?
谢谢!
答案 0 :(得分:2)
如果您想获取文件名,请查看此帖子。 Curl to grab remote filename after following location
如果你在文件中有多个点,你可以简单地使用explode函数获取扩展名
例如
$filename="this.is.the.file.png";
$filename_arr = explode(".", $filename);
$count_of_elements = count($filename_arr);
$file_extension = $filename_arr[$count_of_elements - 1];
答案 1 :(得分:0)
我已完成pathinfo($url)
。我认为pathinfo
仅适用于path
,但不是.. {/ p>
$url = 'http://domain.com/file.ext';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$response = curl_exec($ch);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$pathinfo = pathinfo($url);
$extension = $pathinfo['extension'];