从curl请求或字符串获取文件扩展名

时间:2012-09-16 21:45:10

标签: php regex curl

我有一个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

谢谢!

2 个答案:

答案 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'];