Мне нужно, чтобы URL-адрес кодировал только путь к каталогу и имя файла URL с помощью PHP.
Итак, я хочу кодировать что-то вроде http://example.com/file name и получить результат http://example.com/file%20name.
Конечно, если я делаю urlencode('http://example.com/file name');, тогда я получаю http%3A%2F%2Fexample.com%2Ffile+name.
Очевидным (для меня, в любом случае) решением является использование parse_url() для разделения URL-адреса на схему, хост и т.д., а затем просто urlencode() части, которые нуждаются в ней, как путь. Затем, я бы собрал URL-адрес, используя http_build_url().
Есть ли более элегантное решение? Или это в основном способ пойти?