标题内容处理允许&字符

时间:2013-02-26 17:26:49

标签: php header save filenames

抱歉我的英语不好..

我再次遇到一些问题!

我使用了以下代码行:

$link = $_GET['url'];
$name = $_GET['name'];
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: private");
header("Content-Disposition: attachment; filename=\"(wanted-web.ro) $name.mp3\"");
header("Content-type: audio/mpeg;\r\n");
readfile(str_replace(' ', '_', $link));

该代码用于从外部服务器下载直接链接.mp3!

我的问题是: 当我下载一些包含& 字符的文件时,不要在该字符后显示其余的信息!!

例如: 蕾哈娜&阿肯

.. Allways保存名为 Rihanna 的文件。 Corect是 Rihanna& Akon ,但放大器字符停止显示和 Akon

我尝试了很多不同的方法,但总是失败..

为了更好的解释,该脚本是一个php下载文件.. 当我点击下载 Rihanna& Akon ,给我看一下提示下载框! 在下载框中只显示 Rihanna ,但是 Rihanna 之后如果包含& 字符,则永远不会和 Akon >

希望了解一些事情!

提前谢谢!! 干杯!

2 个答案:

答案 0 :(得分:0)

尝试urlencode文件名,如下所示:

$name = urlencode($_GET['name']);

答案 1 :(得分:0)

上面的代码示例的

编码将是

header("Content-Disposition: attachment; filename=\"(wanted-web.ro) "
  .urlencode($name). ".mp3\"");