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

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

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

    Trinux Members of Antichat

    Joined:
    26 Nov 2004
    Messages:
    1,403
    Likes Received:
    296
    Reputations:
    364
    о, а я и не знал о флаге R ))
    http://httpd.apache.org/docs/current/rewrite/flags.html#flag_r
    точно, можно и так. Разве что RewriteCond тут не понятно зачем.
    Код ответа так же можно проставлять
    Code:
    RewriteEngine on
    RewriteRule ^tds/go\.php$ http://site2.pro/tds/go.php?sid=24 [R=302,L]
     
    _________________________
  2. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    909
    Reputations:
    863
    так пойдет?

    PHP:
    $values='<a onmousedown="pxt(\'c4s\', this.href, 3);" target="_blank" href="http://www.123.ru">123</a>';
    preg_match("/(http*.*ru)/"$values$texts);
    echo 
    $texts[0]; 
     
    _________________________
  3. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Здравствуйте, на веб странице просто текст, пример:

    Мне нужно с помощью регулярки достать то, что дальше выделено щеленым:

    т. е. это число. Заранее спасибо.
     
  4. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Z0diac, LI_day_vis = (\d+)
     
    1 person likes this.
  5. 0х726f6f74

    0х726f6f74 New Member

    Joined:
    29 Nov 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Народ помогите:)
    есть на сайте ссылки вида site.com\com.php?id=1
    пишу в .htaccess
    RewriteEngine On
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^/([0-9]*)$ com.php?id=$1
    пытаюсь перете по ссылки site.com/1 но выдает ошибку(404), где у меня тут косяк?
     
  6. justonline

    justonline network ninja

    Joined:
    27 Jul 2011
    Messages:
    499
    Likes Received:
    60
    Reputations:
    53
    Есть строки ( '', '', '1', '', '', '', '', '11', ''); но "параметров" штук 50. как перебрать по каждому параметру, если не известно, что будет в следующих ковычках?
     
  7. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    Столкнулся с интересной задачей. Вообщем имеется список, примерно такого содержания:

    Code:
    www.[B]domain.com[/B]
    [B]domain.co.uk[/B]
    mail.[B]domain.com.net[/B]
    ns.[B]domain.org[/B]
    cp.members.[B]domain.net[/B]
    panel.members.[B]domain.net.org[/B]
    Задача спарсить имя доменна второго уровня, т.е.: domain.zone
    Но доменные зоны могут быть разными, простыми такие как com|net|org|ru|info или такими: net.org|co.uk|co.za и прочее. Соответственно имя домена везде разное. Как избавится от поддоменов, когда их уровни могут достигать запредельных высот, или они могут вообще отсуствовать.
     
    _________________________
  8. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Expl0ited, можно к примеру так, но нужно составить список доменов, которые так-же будут считаться доменами верхнего уровня:
    PHP:
    $data 'www.domain.com
    domain.co.uk
    mail.domain.com.net
    ns.domain.org
    cp.members.domain.net
    panel.members.domain.net.org'
    ;
    $DomArr = array('net\.org''net''org''net\.org''com''co\.uk''uk''com\.net');

    preg_match_all('/[A-Za-z0-9\-\_.]*?([A-Za-z0-9\-\_]+\.['.join('|'$DomArr).']+)+[\r\n]+/D'"\r\n$data\r\n"$a);
    var_dump($a);
     
    #1908 randman, 3 Dec 2012
    Last edited: 3 Dec 2012
  9. Expl0ited

    Expl0ited Members of Antichat

    Joined:
    16 Jul 2010
    Messages:
    1,035
    Likes Received:
    534
    Reputations:
    935
    я думал над таким вариантом, но собрать список всевозможных доменных зон, будет проблематично, по этому хотелось сделать всё средствами регулярки.
     
    _________________________
  10. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Как в таком случае возможно отделить зону user.dyndns.com от admin.site.com или user.com.dyndns или asd.fb.com?
    ИМХО только с списком зон, либо определять по длине и учитывать домена до 3-х символов в домене второго уровня и т.п., но это сильно неточно.
     
    #1910 randman, 3 Dec 2012
    Last edited: 3 Dec 2012
  11. v00d

    v00d Member

    Joined:
    11 Oct 2010
    Messages:
    34
    Likes Received:
    10
    Reputations:
    7
    PHP:
    $t="www.domain.com
    domain.co.uk
    admin.domain.corp.info
    mail.domain.com.net
    ns.domain.org
    cp.members.domain.net
    panel.members.domain.net.org"
    ;
    preg_match_all('/([^.\n]+?)(\.[^.]{2,4}){1,2}\b/i',$t,$m);
    print_R($m);
     
    2 people like this.
  12. BLurpi^_^

    BLurpi^_^ Banned

    Joined:
    9 Feb 2011
    Messages:
    218
    Likes Received:
    26
    Reputations:
    9
    Подскажите пожалуйста, как мне редиректить на url http://domain.tld, трафф идущий с поисковиков, пробовал

    PHP:
    RewriteCond %{HTTP_REFERER}  ya
    RewriteCond 
    %{HTTP_REFERER}  google
    RewriteCond 
    %{HTTP_REFERER}  mail
    RewriteCond 
    %{HTTP_REFERER} !mydomain\.com
    RewriteRule 
    .* http://domain.tld [R,L]
    не получается(
     
  13. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    909
    Reputations:
    863
    Может такой вариант поможет?!

     
    _________________________
  14. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    PHP:
    HTTP/1.1 302 Found Servernginx DateThu20 Dec 2012 14:24:38 GMT Content-Typetext/html Transfer-Encodingchunked Cneonctionclose Set-Cookiesid=deletedexpires=Wed21-Dec-2011 14:24:37 GMT Set-Cookiepl_id=deletedexpires=Wed21-Dec-2011 14:24:37 GMT Set-CookiePHPSESSID=4055ce55978450441e32bfa111a53136path=/; HttpOnly ExpiresThu19 Nov 1981 08:52:00 GMT Cache-Controlno-storeno-cachemust-revalidatepost-check=0pre-check=0 Pragmano-cache Set-CookiePHPSESSID=30720b17dd1a3abf944e6d1d047d697apath=/; HttpOnly Set-Cookiepl_id=3143248 Set-Cookieduration=18801expires=Thu19-Dec-2019 14:24:38 GMT Set-Cookiesid=1951f197b32635afa1a399bafc2a5ec3 Locationhome.php Set-CookieNSC_ifspftxn-209.200.152.144-80=ffffffffaeef3b6545525d5f4f58455e445a4a423660;path=/;httponly 
    Помогите вытащить куки, пожалуйста.
     
  15. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Code:
    Set-Cookie: (\w+=\w+);
     
  16. 0o Chris o0

    0o Chris o0 New Member

    Joined:
    16 Oct 2011
    Messages:
    142
    Likes Received:
    1
    Reputations:
    0
    Не вытащила sid=1951f197b32635afa1a399bafc2a5ec3 , NSC_ifspftxn-209.200.152.144-80=ffffffffaeef3b6545525d5f4f58455e445a4a423660 и pl_id=3143248.

    У меня такая Set-Cookie: (.*?)=(.*?); получает на выходе то же, что и твоя.
     
  17. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
  18. FunOfGun

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

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Есть скрипт site/scr.php, нужно все вызовы вроде site/page.htm обрабатывать как вызов скрипта с передачей в качестве параметра имени этого файла. как это сделать через .htaccess? Заранее благодарен.
     
  19. POS_troi

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

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    RewriteRule ^([_a-zA-Z0-9]+).html$ scr.php?page=$1
     
    1 person likes this.
  20. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Парни, подскажите...

    Задача следующая: при переходе по ссылке /index.php?act=contacts, нужно, чтобы отображалась страница /contacts/

    да-да не наоборот..) это нужно для сохранения старых урлов

    Так вот, как я понял, переменная REQUEST_URI директивы RewriteCond не видит гет параметров ибо предполагаемый мной вариант

    Code:
    		RewriteCond %{REQUEST_URI} ^\/index\.php\?act=contacts$
    		RewriteRule $ /contacts/ [L]
    не работает, зато вариант
    Code:
    		RewriteCond %{REQUEST_URI} ^\/index\.php$
    		RewriteRule $ /contacts/ [L]
    отображает страницу /contacts/ при обращении к индексу с любыми гет параметрами

    Подскажите как решить задачку? С THE_REQUEST тоже не получается...

    Спасибо!
     
Thread Status:
Not open for further replies.