preg_match

Discussion in 'PHP' started by Student :), 29 Jul 2009.

  1. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    добрый вечер.

    есть некий параметр
    $url=http://sait.ru/page/xxxx/

    как вытащить параметр xxxx ?
    так только работает когда есть слэш после xxxx
    а как сделать универсально если нет слэша после xxxx
    preg_match("|(.*?)/page/(.*?)\/|i",$url,$user);
     
    #1 Student :), 29 Jul 2009
    Last edited: 29 Jul 2009
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Student :)
    preg_match("|(.*?)/page/(.*?)\/?|i",$url,$user);
     
    _________________________
  3. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    Gifts не работает
     
  4. FireFenix

    FireFenix Elder - Старейшина

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <?php

    $text 
    'http://sait.ru/page/xxxx/';

    if (
    $text{strlen($text) - 1} == '/')
    {
      
    $text substr($text0strlen($text) - 1);
    }

    $path explode('/'$text);

    print_r($path[count($path) - 1]); // $path[count($path) - 1] == xxxx

    ?>
    PHP:
    <?php

    $text 
    'http://sait.ru/page/xxxx/';

    $regex '/^http:\/\/.*?\/.*?\/(.*?)\/{0,1}$/i';

    preg_match_all($regex$text$path);

    print_r($path); //$path[1][0] == xxxx

    ?>
     
  5. Student :)

    Student :) Elder - Старейшина

    Joined:
    9 Feb 2007
    Messages:
    278
    Likes Received:
    18
    Reputations:
    -15
    спасибо! щас попробуем
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Student :) Хм, да, ошибочка вышла, тогда так:
    preg_match("|(.*?)/page/([^/]*)|i",$url,$user);
    PHP:
    $arr = array(
    'http://sait.ru/page/xxxx/',
    'http://sait.ru/page/anotheruser',
    'http://sait.ru/page/admin/trashbin'
    );
    foreach(
    $arr as $url)
    {
    preg_match("|(.*?)/page/([^/]*)|i",$url,$user);
    var_dump($user);
    }
     
    _________________________