рдирд┐рд░рдкреЗрдХреНрд╖ рдпреВрдЖрд░рдЖрдИ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд▓рд┐рдВрдХ

рдордЬреЗрджрд╛рд░ рд╕реБрд╡рд┐рдзрд╛ред рд╕рд╛рдкреЗрдХреНрд╖ рдпреВрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реНрдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рдЗрдЯ рдЦреЛрдЬ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг ()ред



рд╕реНрд░реЛрдд рдФрд░ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ







/**

* URI

*

* @param string $link ( URI, , )

* @param string $base URI ( "http://")

* @return string URI

*/

function uri2absolute($link, $base)

{

if (!preg_match('~^(http://[^/?#]+)?([^?#]*)?(\?[^#]*)?(#.*)?$~i', $link.'#', $matchesLink)) {

return false;

}

if (!empty($matchesLink[1])) {

return $link;

}

if (!preg_match('~^(http://)?([^/?#]+)(/[^?#]*)?(\?[^#]*)?(#.*)?$~i', $base.'#', $matchesBase)) {

return false;

}

if (empty($matchesLink[2])) {

if (empty($matchesLink[3])) {

return 'http://'.$matchesBase[2].$matchesBase[3].$matchesBase[4];;

}

return 'http://'.$matchesBase[2].$matchesBase[3].$matchesLink[3];

}

$pathLink = explode('/', $matchesLink[2]);

if ($pathLink[0] == '') {

return 'http://'.$matchesBase[2].$matchesLink[2].$matchesLink[3];

}

$pathBase = explode('/', preg_replace('~^/~', '', $matchesBase[3]));

if (sizeOf($pathBase) > 0) {

array_pop($pathBase);

}

foreach ($pathLink as $p) {

if ($p == '.') {

continue;

} elseif ($p == '..') {

if (sizeOf($pathBase) > 0) {

array_pop($pathBase);

}

} else {

array_push($pathBase, $p);

}

}

return 'http://'.$matchesBase[2].'/'.implode('/', $pathBase).$matchesLink[3];

}








All Articles