Обрезка ULR

Тема в разделе "PHP", создана пользователем Sachek, 21 янв 2011.

Модераторы: latteo
  1. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    383
    Симпатии:
    103
    Привет всем. Следующий вопрос для знатоков.
    Требуется обрезать юрл, то есть...
    http://www.syte.com/syte/file/podfile.php - не правильно.
    Надо что бы осталось www.syte.com
    Пол задачи решил путем поисков в инете и нашел вот этот код:
    PHP:
    $str $domen;
    $domain parse_url($str);
    preg_match_all("/(\w+)/i"$domain["host"], $arr,PREG_PATTERN_ORDER);
    $res array_reverse($arr[0]); 
    echo 
    "{$res[1]}.{$res[0]}"
    Локальный хост то типо выводится, но мне надо эту всю систему, а точнее итоговый результат загнать в переменную. Как не пробовал, не получается. Помогите пожалуйста.
    Мне надо что бы получилось что то типо: $d={$res[1]}.{$res[0]};
    Но предложенная комбинация не пашет (и все подобные, что пришли на ум)...
    Заранее спасибо...
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    PHP:
    $d $res[1] . '.' $res[0];

    а чем не подходит использовать сразу $domain["host"] ????
    зачем там еще регулярки ?
    PHP:
    $domain parse_url($str); 
    $d $domain["host"];
    echo 
    $d;
    print_R($domain);   
    походу будет тоже самое ... или я чего-то не уловил
     
    Sachok321 нравится это.
  3. JESUS

    JESUS

    Регистр.:
    28 ноя 2006
    Сообщения:
    374
    Симпатии:
    110
    не то? :) .....
     
    Sachok321 нравится это.
  4. Miraage

    Miraage Angular/Laravel

    Регистр.:
    3 июн 2008
    Сообщения:
    230
    Симпатии:
    51
    документация PHP тебе в помощь. parse_url все умеет.
     
    Sachok321 нравится это.
  5. Alexanderod

    Alexanderod Создатель

    Регистр.:
    15 янв 2009
    Сообщения:
    49
    Симпатии:
    11
    а)Если обрабатываешь готовый список:
    найди положение первых "//"
    найди положение первой "/"
    все что внутри вырежь и сохрани
    будет тебе www.site.com
    б)Если система дает такой урл, то
    опиши подробнее при каких условиях используется этот урл. Но в любом случае при стабильном формате первый вариант будет действовать безотказно, незвисимо локалхост это или обычный адрес в виде домена, либо ИП, а так же не будет зависеть от настроек ПХП.
    :)
     
    Sachok321 нравится это.
  6. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    383
    Симпатии:
    103
    Благодарю всех, а терь задача малеха другого плана.
    Мне теперь необходимо отбросить зону домена и оставить только его имя, то бишь:
    syte.com - не правильно
    syte - правильно!
     
  7. Alexanderod

    Alexanderod Создатель

    Регистр.:
    15 янв 2009
    Сообщения:
    49
    Симпатии:
    11
    Берем вырезанный мной www.site.com, представляем что он может быть так же www.1.site.com, www.1.2.site.com и так далее. А нам ведь site.com нужен, верно?
    1)ищем первое вхождение точки
    2)берем то что после первого вхождения (www.1.site.com или www.1.2.site.com)
    3)переворачиваем наоборот (moc.etis.1.www и moc.etis.1.2.www)
    4)ищем первое вхождение точки
    5)берем все после первого (etis.1.www и etis.1.2.www) (отбросили зону)
    6)проверяем нет ли www., если есть,то str_replace('.www','',$str) (etis.1.2)
    7)считаем количество точек в строке
    8)количество точек раз отрезаем все что после точки (etis.1.2=>etis.1=>etis)
    9)переворачиваем порядок (site)
    Я не помню есть ли функция подсчета положения символа с конца, надо смотреть документации. Если есть - переворачивать не нужно.
    Возможно есть другие варианты, но этот точно будет работать.

    Добавлено через 46 минут
    еще вариант поиграться с explode и взять из него предпоследнее значение. будет четко то что перед .com стоит.
    :)
     
    Sachok321 нравится это.
  8. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    383
    Симпатии:
    103
    Еле разобрался с тем, что Вы тут написали, но результат положительный. Спасибо огромное.
    Сейчас мне надо малеханький совет, не стал новую тему создавать, решил спросить здесь.
    Меня интересует пост (POST) запрос, а именно:
    1) Имеется пхп файл, который отправляет запрос на сторонний сервер
    2) На сервере, файл обработчик обрабатывает полученный запрос и отправляет его в файл, с которого пришел запрос.
    3) Файл получив результат, выдает его.
    А теперь сам вопрос. Как все эти запросы сделать в 1 файл? Что бы не было редиректов сначала на файл обработчика, а потом обратно. Я конечно понимаю, что без редиректов не получится (переходы все равно будут), но хотя бы спрятать все эти визуальные переходы. Думаю может на Аяксе? В общем посоветуйте :) Заранее спасибо :)
     
  9. Alexanderod

    Alexanderod Создатель

    Регистр.:
    15 янв 2009
    Сообщения:
    49
    Симпатии:
    11
    я думаю так
    PHP:
    function loadXMLDoc(key) {

       var url="удаленный скрипт.php?<?php echo tep_session_name() . '=' tep_session_id(); ?>&keywords="+key;

       // Internet Explorer
       try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
       catch(e) {
          try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
          catch(oc) { req = null; }
       }

       // Mozailla/Safari
       if (!req && typeof XMLHttpRequest != "undefined") { req = new XMLHttpRequest(); }

       // Call the processChange() function when the page has loaded
       if (req != null) {
          req.onreadystatechange = processChange;
          req.open("GET", url, true);
          req.send(null);
       }
    }
    А это выполнение:
    <input class="line" type="text" name="keywords" maxlength="250" value="" onKeyUp="loadXMLDoc(this.value);" autocomplete="off" onfocus="this.value='';" />

    или что-то на подобие. Если не понятно - спрашивайте, попробую разъяснить. Пример работы - hello.od.ua поиск. Запрос обрабатывается на лету сторонним скриптом-файлом без каких-либо редиректов и сразу выдает ответ.

    Добавлено через 1 минуту
    .. ну и вывод в див сделать. Знаете как?
     
  10. Sachek

    Sachek Умелый

    Регистр.:
    23 мар 2009
    Сообщения:
    383
    Симпатии:
    103
    Такс, малеха не понял. Где тут указывается ответный запрос? у меня кстати Пост, а тут вроде гет. буду благодарен, если поможете скрипт заделать.
    В общем у меня следующие данные:
    отправляется переменная text на syte.com/obr.php
    От туда приходит ответный запрос yes или no.
    Вот если поможете впихнуть мои данные в скрипт, буду благодарен :)