Относительный Uri в Абсолютные

Тема в разделе "Регулярные выражения и парсеры", создана пользователем lazutov, 25 июл 2008.

  1. lazutov

    lazutov Гость

    Код (Text):
    function u2a($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];  
    }
     
Загрузка...
Похожие Темы - Относительный Uri Абсолютные
  1. redhat
    Ответов:
    1
    Просмотров:
    48
  2. TAPAKAHATOP
    Ответов:
    0
    Просмотров:
    54
  3. Vander
    Ответов:
    3
    Просмотров:
    630
  4. Vander
    Ответов:
    39
    Просмотров:
    3.008
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    444

Поделиться этой страницей