Necesito que la URL codifique solo la ruta del directorio y el nombre de archivo de una URL usando PHP.urlencode solo el directorio y los nombres de archivo de una URL
Así que quiero codificar algo como http://example.com/file name
y hacer que resulte en http://example.com/file%20name
.
Por supuesto, si hago urlencode('http://example.com/file name');
entonces termino con http%3A%2F%2Fexample.com%2Ffile+name
.
La solución obvia (para mí, de todos modos) es usar parse_url()
para dividir la URL en esquema, host, etc. y luego solo urlencode()
las partes que lo necesitan como la ruta. Luego, volvería a armar la URL usando http_build_url()
.
¿Existe una solución más elegante que esa? ¿O es básicamente el camino a seguir?
Esa parece ser la solución más robusta para mí. – Herbert
Según la documentación: urlencode es para la parte de consulta de una URL. rawurlencode para la ruta, pero asegúrese de excluir las barras inclinadas. –