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

Download and save a file using php (keeping original filename)

我正在尝试下载并保存这样的文件 (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',我怎样才能获得原始文件名?

非常感谢!

这是对我链接到的线程的改编,应该适用于您的情况。正则表达式正在查找最后一个“/”,然后返回它后面的所有内容。

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