За последние 24 часа нас посетили 34629 программистов и 1695 роботов. Сейчас ищут 879 программистов ...

Помощь в простой регулярки

Тема в разделе "PHP для новичков", создана пользователем dhorh, 12 мар 2013.

Статус темы:
Закрыта.
  1. dhorh

    dhorh Активный пользователь

    С нами с:
    19 июл 2012
    Сообщения:
    39
    Симпатии:
    0
    В гугле очень много информации по этой штуки, но мне ничего не подходит, и я не разбираюсь в регулярках.

    Изначально в переменной название есть название сайта (любое название):
    Примерные данные при воходе
    www.mysite.com
    http://mysite.ru
    http://www.mysite.net
    https://mysite.org

    данные при выходе:
    mysite.com
    mysite.ru
    mysite.net
    mysite.org


    то есть должно остаться только название сайта, без всяких www, слешей и http
    при этом название домена может быть любым, чтобы упростить задачу...

    Подскажите ответ к данной задаче, а то я уже отчаялся.
    Заранее спасибо
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    хм... а с img.mysite.co.uk что сделать?
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    parse_url()
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    runcore, если на входе будет что-то типа www.mysite.com то это попадет как путь а не как хост. это раз. и два - я так понял тут в потоке текста нужно дергать хосты без протокола и ввв
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (PHP):
    1. $in = array(
    2.     'www.mysite.com/sdfsdf/sdgf_234.html',
    3.     'http://mysite.ru/sdfsdf/sdgf_234.html',
    4.     'http://www.mysite.net/sdfsdf/sdgf_234.html',
    5.     'https://mysite.org/sdfsdf/sdgf_234.html?sdf=254&df=rt#sdfg',
    6.     'img.mysite.co.uk/sdfsdf/sdgf_234.html',
    7.     'http://username:password@hostname/path?arg=value#anchor',
    8. );
    9. $out=array();
    10. foreach($in as $v) {
    11.     preg_match("/^((f|ht)tps?:\/\/)?([^@]+@)?(www\.)?([^\/]+)/i", $v, $m);
    12.     $out[] = array_pop($m);
    13. }
    14. echo '<pre>';
    15. print_r($out);
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  7. dhorh

    dhorh Активный пользователь

    С нами с:
    19 июл 2012
    Сообщения:
    39
    Симпатии:
    0
    чёрт, а разве в регулярке нельзя написать, что блядь в любом месте названия домена может быть точка? - Зачем вы всё усложняете, мне надо чисто для себя и своего использования

    Добавлено спустя 1 минуту 4 секунды:

    Зачем тут вообще массив, список сайтов я предоставил только для того, чтобы вам было понятно, какие данные приходят.... чёрт
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    список сайтов я увидел и уточнил - если домен не www а img его тоже резать или резать только www? и одновременно уточнил что делать с комбинированными тиэлди типа co.uk вместо простых com|net|org. вместо этого я получаю порцию мата в свой адрес....

    ты псих, таблеточки попей. хотя весеннее обострение видимо началось и медицина бессильна... лечитесь электричеством...
     
  9. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    затем что ты просил регулярку, вот тебе регулярка. чтобы было понятно как твою задачу можно решить. а на будущееучись формулировать задачу правильно и конкретно. черт
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Я спрашиваю еще раз:
    Вы начинаете:
    Это будет являться суб (под) доменном.
    Код (PHP):
    1. subdomain.domainname.zonename
    2. www.subdomain.domainname.zonename
    И
    Если вы делаете в месте где расположен сайт то проверьте:
    Код (PHP):
    1. $www='www.';
    2. $host=isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:getenv('HTTP_HOST');
    3. $host=(false!==strpos($host,$www))?str_replace($www,'',$host):$host;
    4. echo $host;
     
Статус темы:
Закрыта.