【发布时间】:2015-09-17 09:10:35
【问题描述】:
我编写了一个 PHP 脚本,它扫描目录中的 pdf 文件,然后创建一个 HTML 页面,其中包含这些文件的列表及其相关链接。文件名将用于列表项。
如何确保特殊字符和 URL 之间的良好兼容性?
例如,我有一个包含 text 49% text.pdf 的文件,并且服务器响应 URL http://localhost/folder/text%2049%%20text.pdf 并出现 Bad Request 错误。
我尝试使用urlencode(),但没有成功。如何改进我的脚本?
更新
urlencode() 返回我<a href="text+49%25+text.pdf">text 49% text.pdf</a>,这样我得到Bad Request 错误。
【问题讨论】:
-
我认为如果您的服务器上有一个名为“text 49% text.pdf”的文件,这是一件坏事。您必须先重命名文件,然后才能将其保存在服务器上。因此,如果您上传“text é text.pdf”,例如将他的名字更改为“text_e_text.pdf”!它将防止那些 url 错误 ;)
-
当我使用文件名来填充列表时,我避免了通常用于放置在服务器上的每个文件的下划线。我知道我可以逃避它们,但没有办法实现最初的要求吗? PS即使您的解决方案也会出现错误
-
你不能避免文件名中的 % 符号吗??@vismark
-
@SubinThomas 这是文档标题的一部分,它必须以这种方式出现...我需要改进脚本,而不是避免困难/特殊情况
-
我尝试了 urlencode() 并得到“test+49%25+test.pdf”。 @vismark
标签: php url url-rewriting urlencode scandir