@randm18

Как экранировать # в пути к файлу html?

Есть файл в проекте который называется допустим C#.pdf
Через окно предпросмотра этот файл отображается на странице, но с символами типа #, и прочими запрещенными он отказывается работать. Пытался экранировать заменой на кодовое значение, но браузер сам менял код на решетку и файл опять не открывался. Как правильно экранировать в этой ситуации?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
@alexalexes
Так же как и кириллицу, и пробелы.
# это %23
Есть один нюанс, если вы кодируете полный путь к файлу, то нужно:
1) строку url разбить на составляющие пути по разделителю слеш;
2) каждую составляющую перекодировать функцией rawurlencode;
3) собрать обратно путь.
$in_str = 'files/test/Test! symbol # and % and & and (=-,.).pdf';
$out_str = implode('/', array_map('rawurlencode', explode('/', $in_str)));
file_put_contents('test_url.txt', $out_str);
// test_url.txt
// files/test/Test%21%20symbol%20%23%20and%20%25%20and%20%26%20and%20%28%3D-%2C.%29.pdf
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы