php 获取指定路径数据类型,php怎么通过一个Url获得文件类型(后缀名)?

网上找的方法都是知道文件后缀名的情况下~

我现在的情况是只知道Url,比如http://site.com/photo,这是一个文件,但是没有把文件类型和后缀在上面表示出来,我接收到之后怎么用Php把他后缀或者文件类型获取到?

好吧,我是做微信的时候用户发过来的图片腾讯只给了我一个这样的url

回复内容:

网上找的方法都是知道文件后缀名的情况下~

我现在的情况是只知道Url,比如http://site.com/photo,这是一个文件,但是没有把文件类型和后缀在上面表示出来,我接收到之后怎么用Php把他后缀或者文件类型获取到?

好吧,我是做微信的时候用户发过来的图片腾讯只给了我一个这样的url

http://php.net/manual/en/function.finfo-buffer.php

bVhK4l

大家写的代码很不高效呀

http://stackoverflow.com/questions/2610713/get-mime-type-of-external-file-using-curl-and-php

你应该通过 HTTP 头部里面的 Content-Type 来判断数据类型。

CodeIgniter 提供了一份比较完整的 Content-Type(即 MIME Type)和扩展名的对应表,你可以参考一下。

https://github.com/bcit-ci/CodeIgniter/blob/master/application/config/mimes.php

heheheh 玻璃心犯了

高端逼们,玩好不送!!

function online_filetype($url) {

if (function_exists('curl_init'))

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_NOBODY, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$results = explode("\n", trim(curl_exec($ch)));

foreach($results as $line) {

if (strtok($line, ':') == 'Content-Type') {

$parts = explode(":", $line);

return trim($parts[1]);

}

}

}else

{

$url = parse_url($url);

if ($fp = @fsockopen($url['host'], empty($url['port']) ? 80 : $url['port'], $error)) {

fputs($fp, "GET " . (empty($url['path']) ? '/' : $url['path']) . " HTTP/1.1\r\n");

fputs($fp, "Host: {$url['host']}\r\n\r\n");

while (!feof($fp)) {

$tmp = fgets($fp);

if (trim($tmp) == '') {

break;

} else if (preg_match('/Content-Type:(.*)/si', $tmp, $arr)) {

return trim((string)$arr[1]);

}

}

return null;

} else {

return null;

}

}

return null;

}

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值