parse_url
(PHP 4, PHP 5)
parse_url — Analiza un URL y devuelve sus componentes
Descripción
Esta función analiza una URL y devuelve un array asociativo que contiene aquellos componentes presentes en la URL.
El propósito de esta función no es validar la URL dada, tan solo la separa en las partes listadas anteriormente. Las URLs parciales son aceptadas también, parse_url() hace lo mejor que puede para procesarlas correctamente.
Parámetros
-
url -
La URL a analizar. Caracteres inválidos son reemplazados por _.
-
component -
Especifique uno de
PHP_URL_SCHEME,PHP_URL_HOST,PHP_URL_PORT,PHP_URL_USER,PHP_URL_PASS,PHP_URL_PATH,PHP_URL_QUERYoPHP_URL_FRAGMENTpara recibir solo un componente URL específico como un valor tipo string (excepto cuando se daPHP_URL_PORT, en cuyo caso el valor de retorno será un integer).
Valores devueltos
Sobre URLs seriamente malformadas, parse_url() puede devolver
FALSE.
Si se omite el parámetro component, un
array asociativo es devuelto. Al menos un elemento estará
presente en el array. Claves potenciales en este array son:
- scheme - p.ej. http
- host
- port
- user
- pass
- path
- query - después del signo ?
- fragment - después del signo #
Si se especifica el parámetro componente,
parse_url() devolverá un string (o un
integer, para el caso de PHP_URL_PORT)
en lugar de un array. Si el componente solicitado no existe en la
URL dada, será devuelto NULL.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.4.7 | Arreglado el reconocimiento de host cuando scheme es omitido y está presente un separador de componentes que lo encabeza. |
| 5.3.3 |
Eliminado el E_WARNING que era producido cuando fallaba el análisis de la
URL.
|
| 5.1.2 | ASe agregó el parámetro component. |
Ejemplos
Ejemplo #1 Un ejemplo de parse_url()
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
El resultado del ejemplo sería:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
Ejemplo #2 Un ejemplo de parse_url() con el esquema ausente
<?php
$url = '//www.example.com/path?googleguy=googley';
// Antes de 5.4.7, esto mostraría la ruta como "//www.example.com/path"
var_dump(parse_url($url));
?>
El resultado del ejemplo sería:
array(3) {
["host"]=>
string(15) "www.example.com"
["path"]=>
string(5) "/path"
["query"]=>
string(17) "googleguy=googley"
}
Notas
Nota:
Esta función no trabaja con URLs relativas.
Nota:
Esta función tiene el propósito específico de procesar URLs y no URIs. Sin embargo, para cumplir con los requerimientos de compatibilidad hacia atrás de PHP, hace una excepción para el esquema file:// en donde se permiten tres barras (file:///...). Para cualquier otro esquema, lo anterior es inválido.
Ver también
- pathinfo() - Devuelve información acerca de la ruta de un fichero
- parse_str() - Convierte el string en variables
- http_build_query() - Generar una cadena de consulta codificada estilo URL
- http_build_url() - Construir una URL
- dirname() - Devuelve el directorio padre de la ruta
- basename() - Devuelve el último componente de nombre de una ruta
- » RFC 3986