ELLO
Guest
parseurl помогите причесать
помогитте люди добрые причесать и оптимизировать ф-цию
или возможно есть у каво аналоги?
ф-ция разбивает урл на переменные
но я тут чтото явно лишнего накосячил =(
возможно чтото и не учел даже
помогитте люди добрые причесать и оптимизировать ф-цию
или возможно есть у каво аналоги?
PHP:
function parseurl($str = false){
if (!$str)return false;
$arr["url"] = $str;
if (!preg_match("/^(http):\/\/(.+?)((\/|$).*)/i", $str, $f)) {
return false;
}
$arr["prot"] = $f[1];
if (preg_match("/(.+?):(.+?)@(.+)/i", $f[2], $f2)) {
$arr["user"] = $f2[1];
$arr["pass"] = $f2[2];
$arr["host"] = $f2[3];
}else{
$arr["host"] = $f[2];
}
if (preg_match("/(.+?):(\d{1,5})/i", $arr["host"], $f3)) {
$arr["host"] = $f3[1];
$arr["port"] = $f3[2];
}
$arr["path"] = $f[3];
$arr["dir"] = false;
if (preg_match("/([^\?]+)\/.*?(\?|)/i", $arr["path"], $f4)) {
$arr["dir"] = $f4[1];
}
// имя файла
if (preg_match("/.*?\/([^\/\?]+)(\?|)/i", $arr["path"], $f5)) {
$arr["filename"] = $f5[1];
}
// get переменные
if (preg_match("/^[^\?]+\?(.*)/i", $arr["url"], $f6)) {
$res = explode ("&", $f6[1]);
foreach($res as $v) {
$kv = explode("=", $v);
$arr["get"][urldecode($kv[0])] = urldecode($kv[1]);
}
//$arr["get"] = $f6[1];
}
$arr["uuu"] = $arr["prot"]."://".$arr["host"].$arr["dir"]."/".$arr["filename"];
return $arr;
}
но я тут чтото явно лишнего накосячил =(
возможно чтото и не учел даже