Forum und email

parse_url

(PHP 4, PHP 5)

parse_url — Procesar una URL y devolver sus componentes

Descripción

mixed parse_url ( string $url [, int $componente ] )

Esta función analiza una URL y devuelve una matriz asociativa 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.

Lista de parámetros

url

La URL a analizar

componente

Especifique uno de PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY o PHP_URL_FRAGMENT para recibir solo un componente URL específico como un valor tipo string.

Valores retornados

Sobre URLs seriamente malformadas, parse_url() puede devolver FALSE y emitir un valor E_WARNING. De lo contrario se devuelve una matriz asociativa, cuyos componentes pueden ser (al menos uno):

  • scheme - p.ej. http
  • host
  • port
  • user
  • pass
  • path
  • query - después del signo de interrogación ?
  • fragment - después del signo de numeral #

Si el parámetro componente es especificado, un valor tipo string es devuelto en lugar de un array.

Registro de cambios

Versión Descripción
5.1.2 Se agregó el parámetro componente

Ejemplos

Example#1 Un ejemplo de parse_url()

<?php
$url 
'https://nombre_usuario:contrasenya@nombre_host/ruta?arg=valor#ancla';

print_r(parse_url($url));

echo 
parse_url($urlPHP_URL_PATH);
?>

El resultado del ejemplo seria:

Array
(
    [scheme] => http
    [host] => nombre_host
    [user] => nombre_usuario
    [pass] => contrasenya
    [path] => /ruta
    [query] => arg=valor
    [fragment] => ancla
)
/path

Notes

Note: Esta función no trabaja con URLs relativas.

Note: 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.