使用php下载并保存文件(保留原始文件名)

时间:2015-04-04 22:32:25

标签: php file download

我试图下载并保存这样的文件(http://www.example.com/bajar.php?id=420633&u=7)但保留原始文件名。

我已经搜索过并找到了这段代码:

file_put_contents('test.rar', file_get_contents('http://www.example.com/bajar.php?id=420633&u=7');

但在这种情况下,我必须把文件名' test.rar'手动,我怎样才能获得原始文件名?

非常感谢!

1 个答案:

答案 0 :(得分:1)

这里是我所链接的线程的改编,应该适合您的情况。正则表达式正在寻找最后的' /'然后返回它之后的所有内容。

<?php
function get_real($url) {
    $headers = get_headers($url);
    foreach($headers as $header) {
        if (strpos(strtolower($header),'location:') !== false) {
            return preg_replace('~.*/(.*)~', '$1', $header);
        }
    }
}
echo get_real('http://www.example.com/bajar.php?id=420633&u=7');
?>