使用 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');
?>
我正在尝试下载并保存这样的文件 (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');
?>