确定cURL下载的文件类型

我有这个代码,

<?php

$curl = curl_init();

curl_setopt_array($curl,[
  CURLOPT_URL => "https://example.com/v1/items/id/preview",CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => "",CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 30,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => "GET",CURLOPT_POSTFIELDS => "",CURLOPT_HTTPHEADER => [
    "accept: application/json","Authorization: Bearer bearer-string","Content-Type: application/json"
  ],]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
    file_put_contents('file.jpeg',print_r($response,true));    
}

从该代码我可以看出响应是 jpeg,这就是我指定 file.jpeg 作为文件名的原因。

现在我的问题是,如果响应不是 jpeg 怎么办?

我无法从 https://www.php.net/manual/en/ref.filesystem.php 中找到任何可以动态确定响应文件类型的函数。

对此有任何想法。

ksgshot 回答:确定cURL下载的文件类型

你可以使用 curl_getinfo 来获取 curl 得到的内容类型

$mime = curl_getinfo(response,CURLINFO_CONTENT_TYPE); 然后简单地检查 $mime 是否等于 'image/jpeg'

本文链接:https://www.f2er.com/317.html

大家都在问