如何查找网址后面的文件详细信息?

时间:2014-01-05 22:33:13

标签: php file url

我有网址:

https://jumbo-beta.iskon.hr/dl/6c6e4510-765b-401f-9793-f98a8e6e941b

我想知道该网址背后的文件详情。 (电影名称,大小等)我不想下载文件,只是找到详细信息。

这可以用php完成吗?

THX

3 个答案:

答案 0 :(得分:0)

是的,你有能力做到这一点!

我认为最好的方法是从HTTP头获取它,另一种方法是在临时目录下载并从中提取信息。

编辑
实施例

<?php

$headers = get_headers("https://jumbo-beta.iskon.hr/dl/6c6e4510-765b-401f-9793-f98a8e6e941b");
preg_match_all("/(?P<key>([\w-]+)):(\s+)?(?P<value>(.+))/", implode("\r\n", $headers), $matches);

$values = array_combine($matches['key'], $matches['value']);
preg_match('/filename="(?P<name>(.+))"/', $values['Content-Disposition'], $file);

$content_type = $values['Content-Type'];
$filesize     = $values['Content-Length'];
$filename     = $file['name'];

var_dump($content_type, $filesize, $filename);

然后你可以访问所有...

以下代码的输出......

string 'image/jpeg; charset=ISO-8859-2' (length=31)
string '130677' (length=7)
string 'WWW.YIFY-TORRENTS.COM.jpg' (length=25)

答案 1 :(得分:0)

get_headers会在返回之前下载整个文件,因为它会使用GET请求。

在致电get_headers之前,请使用以下内容:

stream_context_set_default(array('http' => array('method' => 'HEAD')));

答案 2 :(得分:0)

是的,在PHP中有很多函数可以返回有关文件的信息

finfo_file - finfo :: file - 返回有关文件的信息

此外,图像处理功能太多: exif_read_data可以帮到你!

<?php
$exif = exif_read_data("https://jumbo-beta.iskon.hr/dl/6c6e4510-765b-401f-9793-f98a8e6e941b", 0, true);
echo "test.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

输出:

  

test.jpg放在:

     

FILE.FileName:6c6e4510-765b-401f-9793-f98a8e6e941b

     

FILE.FileDateTime:0

     

FILE.FileSize:130677

     

FILE.FileType:2

     

FILE.MimeType:image / jpeg

     

FILE.SectionsFound:

     

COMPUTED.html:width =“350”height =“500”

     

COMPUTED.Height:500

     

COMPUTED.Width:350

     

COMPUTED.IsColor:1