Помогите с регуляркой

Discussion in 'PHP' started by Trieg, 27 Sep 2008.

  1. Trieg

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

    Joined:
    26 Oct 2007
    Messages:
    82
    Likes Received:
    9
    Reputations:
    0
    В общем начал делать систему ЧПУ на сайте и столкнулся с проблемой... необходима составить регулярное выражение для замены некоторых урлов (весь хтмл идет с буфера).. провозился 6 часов но все практически безрезультатно..

    необходима сделать так чтоб под регулярку попадал только такой урл
    Code:
    href="index.php?mod=(\w+) ТУТ заменяем все & на / и = на -"
    (другие типа
    Code:
    href="index.php?plag="
    не обрабатывались)

    к примеру
    Code:
    href="index.php?mod=News&file=comments&action=edit&id=2&set=2"
    должен превратится в
    Code:
    href="News/file-comments/action-edit/id-2/set-2
    буду благодарен за любую помощь)
     
  2. попугай

    попугай Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    1,515
    Likes Received:
    400
    Reputations:
    196
    http://www.generateit.net/mod-rewrite/

    и не парься
     
  3. KillDead

    KillDead New Member

    Joined:
    15 Sep 2008
    Messages:
    31
    Likes Received:
    2
    Reputations:
    0
    Интересно как он прапарсит код из буфера.
    2Trieg
    Вроде ничего сложного

    PHP:
    function ogo($arr){
        
        return 
    str_replace('=''-',  str_replace('&''/'$arr[1] ));
        
    }

    echo 
    preg_replace_callback('#href="index.php\?mod=(.*?)"#is''ogo'$re);
     
  4. diehard

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

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    Code:
    preg_match_all("/href=\"index\.php\?mod=(.+)\"/", $html, $matches);
    var_dump($matches);