我有这个代码,
<?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 中找到任何可以动态确定响应文件类型的函数。
对此有任何想法。
答案 0 :(得分:0)
你可以使用 curl_getinfo 来获取 curl 得到的内容类型
$mime = curl_getinfo(response , CURLINFO_CONTENT_TYPE);
然后简单地检查 $mime 是否等于 'image/jpeg'