[Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.

Discussion in 'PHP' started by .:EnoT:., 19 Nov 2008.

Thread Status:
Not open for further replies.
  1. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    помогите с ЧПУ

    есть ссылка вида: index.php?do=teleprog&act=archive&id=цифра. и мне надо чтобы оно делало редирект типо /teleprog/archive/цифра/

    я тут сотворил одну. если не правильно исправьте.

    Code:
    RewriteRule ^teleprog/archive/([0-9]+)/$ index.php?do=teleprog&act=archive&id=$1 [L]
     
    #501 alwex, 17 Jun 2009
    Last edited: 17 Jun 2009
  2. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    и смотрите ещё... у меня в базе храниться в виде время(15:23 например). Название программы. например
    15:23. Новости. мне надо чтобы парсер при выходе все времена парсил в одном месте типо <b>15:23</b>, а другом <dt>15:23</dt>. Надо 2 регулярки... чтобы они заменивали даты... спасибо заранее
     
  3. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    уже не надо. я сделал... спасибо за исправление...
     
  4. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    а как сделать регулярку чтобы она получала значение "Любой текст"
    в базе храниться текст:

    <b>15:23</b> Программа

    и надо чтобы она с этого розбивала и получала отдельно значение

    15:23 и отдельно значение Программа.... (программа может быть (.*)
     
  5. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Что-то типа
    PHP:
    preg_match_all ('/<b>(\d{2}:\d{2})<\/b>(.+?)(\z|\n)/'$str$m);
     
    #505 krypt3r, 18 Jun 2009
    Last edited: 18 Jun 2009
  6. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    спс
     
  7. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    помогите. у меня есть ссылка вида
    Code:
    index.php?do=gallery&act=view&allbum=test&page=5
    где test - текст, 5 - цифры.
    я хотел сделать ЧПУ, но она не роботает

    Code:
    RewriteRule ^gallery/([a-zA-Z0-9]+)/([0-9]+) index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
     
  8. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Без "^" сделай. "^" - означает начало строки, а gallery - не начало строки
     
  9. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    ничего не изменилось. смотри у меня есть там ещё регулярки какие роботают, а вот эта нет
     
  10. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Слэш в конце регулярки поставьте
    Code:
    ^gallery/([a-zA-Z0-9]+)/([0-9]+)[color=red][b]/[/b][/color]
    
     
  11. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    ничего не изменилось...
     
  12. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    всеравно... http://localhost/gallery/all/2/
     
  13. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    alwex, обращайтесь так
    Code:
    http://site.ru/gallery/test/5/
    
    без слэша получите 404
     
  14. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    да как я только не обращался... там есть ещё 1 ЧПУ но пашет:

    RewriteRule ^gallery/([a-zA-Z0-9]+) index.php?do=gallery&act=view&allbum=$1 [L]
     
  15. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    а как бы переписать регулярку. мб другие варианты есть...
     
  16. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    сделал уже давно...
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    alwex В следующий раз сразу пишите, что у вас еще там есть. Как вариант:
    Code:
    RewriteEngine On
    RewriteRule ^gallery/([a-zA-Z0-9]+)/?$ index.php?do=gallery&act=view&allbum=$1 [L]
    RewriteRule ^gallery/([a-zA-Z0-9]+)/([0-9]+)/?$ index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
     
    _________________________
    1 person likes this.
  18. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    оО заработало. спс
     
    1 person likes this.
  19. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Попробуйте объединить в одну регулярку.
    Code:
    RewriteRule ^gallery/([a-zA-Z0-9]+)/?([0-9]*)/?$ index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
    
    У меня по крайней мере, работает и /gallery/test, и /gallery/test/6
     
  20. Fak1r

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

    Joined:
    3 Jun 2007
    Messages:
    36
    Likes Received:
    2
    Reputations:
    0
    Доброго времени суток.

    Пытаюсь составить регуляку в javascript.
    Есть код:
    Code:
    var match;
    var re = new RegExp("link\">Уничтожитель\\s?<\\s*Время\\sстроительства\\s([\\d:]+)", "gi");
    while(match = re.exec(document.documentElement.innerHTML)){
        alert(match);
    }
    
    по идее код должен возвращять время строительства, но что то не работает.

    Кусок кода страци:
    Code:
    <td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://site.ru/xxx.php/0000000/47BOMBER.gif" title="Бомбардировщик" alt="Бомбардировщик" class="image" /></a></td>
    		<td style="vertical-align: top;"><a href=http://site.ru/xxx.php/0000000/47" title="" class="link">Бомбардировщик</a> (69 в наличии) <br />
    		Бомбардировщик был защиту.<br />
    		Необходимо Металл: 50.000 Кристалл: 25.000 Дейтерий: 15.000 <br />
    		Время строительства 00:45:00		</td>
    		<td><input type="text" name="40" value="0" size="3" maxlength="4" class="center" /></td>
    	</tr>  <tr>
    		<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://uni1.darkstar-nn.ru/images/buildings/STAR_DESTROYER.gif" title="Уничтожитель " alt="Уничтожитель " class="image" /></a></td>
    		<td style="vertical-align: top;"><a href="http://site.ru/xxx.php/0000000/47" title="" class="link">Уничтожитель </a> (16 в наличии) <br />
    		 	Уничтожитель - король среди военных кораблей. Его мультифланговые ионные, плазменные и гауссовые орудийные .<br />
    		Необходимо Металл: 60.000 Кристалл: 50.000 Дейтерий: 15.000 <br />
    		Время строительства 01:06:00		</td>
    		<td><input type="text" name="41" value="0" size="3" maxlength="4" class="center" /></td>
    
     
Thread Status:
Not open for further replies.