Я написал скрипт PHP, который сканирует каталог для файлов PDF, а затем создает HTML-страницу со списком этих файлов и их относительной ссылкой. Имя файла будет использовано для элементов списка.PHP: безопасно преобразовать имя файла в URL-адрес
Как я могу обеспечить хорошую совместимость между специальными символами и URL?
Например, у меня есть файл, который содержит text 49% text.pdf
, и сервер отвечает на URL http://localhost/folder/text%2049%%20text.pdf
с ошибкой Bad Request
.
Я пробовал использовать urlencode()
без каких-либо успехов. Как я могу улучшить свой сценарий?
UPDATE
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-адреса;) – Fky
Поскольку я использую имя файла для заполнения списка, я избегал подчеркивания, которое я обычно использую для каждого файла, который я размещал на сервере. Я знаю, что я могу избежать их, но не существует способа добиться того, что изначально было запрошено? ** PS ** ошибка приходит даже с вашим решением – vismark
Не можете ли вы избежать символа% внутри имени файла? @ Vismark –