我正在研究什么是有效的水印系统,用户的URL就是这样的。
https://api.example.com/overlay?image_path=http://www.theuserssite.com/image.ext&other=parameters
我想知道用户image_path是否类似于www.theuserssite.com/image?image_id=123
,网址中没有扩展名,所以我无法分辨图像的文件类型。
无论如何,我可以从远程路径获取文件类型的内容吗?
答案 0 :(得分:2)
不,不是没有调用和加载图像来检查它的类型。尝试使用getimagesize
PHP函数。
示例:
//https://api.example.com/overlay?image_path=http://www.theuserssite.com/image.ext
$var = "http://www.theuserssite.com/image.ext";
$output = getimagesize($var);
$output[2] = image MIME type.
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以尝试使用cURL(如果您的系统上存在) - 发出请求并解析响应:
$ch = curl_init('www.theuserssite.com/image?image_id=123');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$results = split("\n", trim($result));
foreach ($results as $row)
{
if (strtok($row, ':') == 'Content-Type')
{
$exploded = explode(":", $row);
echo trim($exploded[1]);
}
}
如上所述here
HTTP服务器以状态行(指示事情进展顺利),响应标头以及最常见的响应主体进行响应。
因此,无需存储实际文件只需解释结果。