PHP - ayuda completa del analizador de url
He estado tratando de encontrar un analizador de url efectivo, el propio php no incluye subdominio o extensión. En php.net varios usuarios han contribuido y hecho esto:
function parseUrl($url) {
$r = "^(?:(?P<scheme>\w+)://)?";
$r .= "(?:(?P<login>\w+):(?P<pass>\w+)@)?";
$r .= "(?P<host>(?:(?P<subdomain>[-\w\.]+)\.)?" . "(?P<domain>[-\w]+\.(?P<extension>\w+)))";
$r .= "(?::(?P<port>\d+))?";
$r .= "(?P<path>[\w/]*/(?P<file>\w+(?:\.\w+)?)?)?";
$r .= "(?:\?(?P<arg>[\w=&]+))?";
$r .= "(?:#(?P<anchor>\w+))?";
$r = "!$r!"; // Delimiters
preg_match ( $r, $url, $out );
return $out;
}
Desafortunadamente, falla en las rutas con un '-' y no puedo, por el resto de mi entrenamiento, cómo modificarlo para que acepte '-' en el nombre de la ruta.
Gracias