За последние 24 часа нас посетили 17555 программистов и 1314 роботов. Сейчас ищут 1435 программистов ...

preg_match preg_split

Тема в разделе "Регулярные выражения", создана пользователем rustoke, 30 сен 2015.

  1. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
  2. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Разобрался с первыми двумя задачами, не могу все еще составить регулярку для 83839
    Код (PHP):
    1. $url = parse_url($url, PHP_URL_PATH); 
    2. $url = explode ('/' , trim($url, '/')); 
    3. echo $url[0].' - '.$url[1];
    4.  
    5. preg_match('@^(?:http://)?([^/]+)@i',"http://domain.ru/", $matches);
    6. echo $matches[1];
    7.  
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    /\/\/([^\/]+)\/[^\/]+\/([^\/]+)\/\D+(\d+)/
     
  4. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    НА выходе ".html", а не 83839
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    быть такого неможет
    Код (PHP):
    1. preg_match('/\/\/([^\/]+)\/[^\/]+\/([^\/]+)\/\D+(\d+)/', 'http://domain.ru/news/second/gigantskoe-domino-83839.html', $m);
    2. echo '<pre>';
    3. print_r($m);
     
  6. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Сорри, действительно работает, спасибо... я подставлял в preg_split

    Добавлено спустя 40 минут 24 секунды:
    А если я захочу дополнительно вывести "news", добавляю дополнительную \/([^\/]+)\, ничего не работает((, хелп
     
  7. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. <pre>
    2. <?php
    3. $url = array();
    4. $url['parse'] = parse_url('http://example.com/news/second/gigantskoe-domino-83839.html');
    5. $url['path'] = explode('/', $url['parse']['path']);
    6. $url['file'] = explode('.', end($url['path']));
    7. $url['name_array'] = explode('-', $url['file'][0]);
    8.  
    9. var_export($url); 
    Код (PHP):
    1.   'parse' => 
    2.   array (
    3.     'scheme' => 'http',
    4.     'host' => 'example.com',
    5.     'path' => '/news/second/gigantskoe-domino-83839.html',
    6.   ),
    7.   'path' => 
    8.   array (
    9.     0 => '',
    10.     1 => 'news',
    11.     2 => 'second',
    12.     3 => 'gigantskoe-domino-83839.html',
    13.   ),
    14.   'file' => 
    15.   array (
    16.     0 => 'gigantskoe-domino-83839',
    17.     1 => 'html',
    18.   ),
    19.   'name_array' => 
    20.   array (
    21.     0 => 'gigantskoe',
    22.     1 => 'domino',
    23.     2 => '83839',
    24.   ),
    25. )