忽略'&'在地址栏中传递的var内容中

时间:2011-01-13 18:23:37

标签: php

我有一个download.php文件,可以获取并打开文件。我有一个问题是文件是用'&'命名的在文件名中,所以当我尝试使用'&'访问文件时,我找不到文件在他们中间。

示例:download.phpf = one_& _another.pdf

在download.php文件中我使用获取文件名($ _GET ['f'])上面的示例如果我将文件名更改为one_and_another.pdf则会抛出错误文件。

如果没有很多这样的文件以这种方式命名,那么重命名会很好。

我需要知道如何忽略'&'这一事实并不意味着即将传递另一个PHP的变种。

3 个答案:

答案 0 :(得分:2)

如果您可以控制查询字符串,则需要对&符号进行URL编码,使它们看起来像这样:

download.php?f=one_%26_another.pdf

然后像往常一样寻找$_GET['f']。否则,字面符号&会将$_GET分解为

{ 'f' => 'one_', '_another.pdf' => '' }

答案 1 :(得分:1)

您可能只需在链接中正确urlencode() &

download.php?f=one_%26_another.pdf

答案 2 :(得分:0)

接受用户输入的规则1:不信任它。

Refer to this StackOverflow answer为您的解决方案。