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

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

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

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    PHP:
    <?php
    $dir 
    scandir($_SERVER['DOCUMENT_ROOT']);
    foreach (
    $dir as $file) {
    if(
    is_file($file))
    {
        
    $ext pathinfo($file);
        
    $file str_replace('.'.$ext['extension'],'',$file);
        echo 
    $file.'<br>'// Вывод файлов без расширения.
    } else {
        echo 
    $file.'<br>'// Вывод папок.
    }

    }
    ?>
     
  2. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    PHP:
    if(preg_match_all('#<a[^>]*? href="(.*?)"#',$data,$l))
    $links $l[1];
     
  3. Димитрий

    Димитрий New Member

    Joined:
    30 Aug 2008
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    в общем есть такая проблема.
    есть два сайта- движки на VamShop 1.45, файлы .htaccess одинаковые.. файлы manager.php и redirector.php тоже..( отвечающие за переделку урлов)
    ЧПУ включено..
    на одном все нормально- редирект работает..

    но на одном из них есть такая проблема- в поисковике есть страницы вида
    product_info.php?info=p3076
    и страницы вида index.php?cat они дублируются естесственно с страницами с нормальными ЧПУ...

    редирект получается не работает!!!
    больше 100 подобных страниц- наверное не надо обьяснять что это жутко вредно для поисковиков..

    через .htaccess не получается сделать изменение..
    то есть пишу скажем

    Redirect 301 /index.php?cat=c226_Biolit.html http://SAITEGGG.ru/index.php/cat/c226_Biolit.html и это не работает...
    может дело в том что знак ? в ссылке не понимает? подобное правило но с прямыми ссылками работает..

    понятно, что в вамшопе мало кто понимает, но как сделать чтобы редирект работал через .htaccess
    __________________
     
  4. warlok

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

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    помогите правильно составить регулярку, есть поле
    Code:
    <input type='hidden' id='post_ID' name='post_ID' value='4' />
    
    нужно спарсить значение валуе
     
  5. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    2 warlok
    Code:
    preg_match_all("#<input.*value='(.*)'#", $text, $out);
     
  6. warlok

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

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    что то невыходит, возврашяет пустой массив
     
  7. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    значит в коде у тебя чтото не то.

    вот результат проверки:
    Code:
    Array
    (
        [0] => <input type='hidden' id='post_ID' name='post_ID' value='4'
        [1] => 4
    )
    вот сам код:
    PHP:
    <?PHP 
      
    // 
      
    $subject '<input type=\'hidden\' id=\'post_ID\' name=\'post_ID\' value=\'4\' />'
      
    // 
      
    $pattern '#<input.*value='(.*)'#is';  
      
    // 
      
    $result preg_match($pattern$subject$subpattern); 
      
    // 
      
    echo '<pre>'.print_r($subpatternTRUE).'</pre>'
    ?>
    EDIT: результат разумеется в $result, а $subpattern не обязателен, так что можешь его из preg_match удалить, т.е. preg_match($pattern, $subject);
     
    #727 BrainDeaD, 16 Nov 2009
    Last edited: 16 Nov 2009
    1 person likes this.
  8. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10
    тоже... =)))
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
        $text 
    "<input type='hidden' id='post_ID' name='post_ID' value='4' />";
        
    preg_match("#<input.*value='(.*)'#"$text$out);
        echo 
    $out[1];
     
    1 person likes this.
  10. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    И вот так еще можно:
    PHP:
    <?php 
        $text 
    "<input type='hidden' id='post_ID' name='post_ID' value='4' />"
        
    preg_match("#<input[^>]*? value='(.*)'#i"$text$out); 
        
    var_dump($out);
    ?>
     
    1 person likes this.
  11. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    как на JS сделать что бы проверяло или есть + вначале текста
     
  12. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Как-то не по-русски у вас фраза звучит. Если я ее правильно понял, то
    HTML:
    alert (str.match (/^\++/) ? 'yes' : 'no');
    
     
  13. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    ну типо парсер на проверку телефона. что бы только проверял или есть + впереди
     
  14. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    тогда достаточно проверки
    Code:
    alert (str.charAt (0) == '+' ? 'yes' : 'no');
    
    без регулярки
     
  15. intNet

    intNet Member

    Joined:
    31 May 2009
    Messages:
    29
    Likes Received:
    14
    Reputations:
    5
    <input type=submit value=' баланс ($0) '></td></form>
    Нужно вычленить баланс. С regexp не дружу :(.
     
  16. BrainDeaD

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

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    intNet
    смотря в каком виде баланс нужен. ну типа баланс ($0) или просто $0 или само число?
    вот для первого варианта:
    PHP:
    $text "<input type=submit value=' баланс ($0) '></td></form>"
    preg_match_all("#<input.*value='(.*)'#"$text$out); 
    echo 
    $out[1];
     
    1 person likes this.
  17. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    cпс
     
  18. .ATK

    .ATK Active Member

    Joined:
    20 Feb 2009
    Messages:
    143
    Likes Received:
    111
    Reputations:
    9
    Голова пухнет, сделайте кто нибудь:

    +ddd-ddd-ddddddd или +ddd-dd-ddddddd

    d-число от 0 до 9
     
  19. wolfiki

    wolfiki New Member

    Joined:
    23 Nov 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    помогите разобраться с ifrаmе
    вообщем проблемма такая есть некий сайт .( ну че греха таить ) для зароботка денех
    так вот .принцип такой кликаешь по ссылкам смотриш открывшийся сайт 30-40 сек -- те капает монетка.

    хочу сразу сказать о взломе речь не пойдет. вопрс в другом
    1 . эм как сделать чтоб открывался ток фрейм с счетчиком времени (без самого сайта ...ну или его содержимого .)

    ** было **
    [​IMG]

    а сделать что б было ТАК !!
    [​IMG]


    2 . возможно ли зделать скрипт обнуляющий счетчик ( по типу сриптов для оперы .. что б не ждать на депозите 60 сек.)
    кликнул по ссылке открылась страница и счетчик начал отсчет 30...29 ....и сразу ноль....
    [​IMG]


    исходный код таких страниц примерно такой
    <html>
    <head>
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    <title>адрес сайта ( работодателя) - Система Активной Рекламы</title>

    <frameset rows="31,25,*">
    <frame marginwidth="0" marginheight="0" name="frminfo" scrolling="no" noresize src="vls.php">
    <frame name="frmads" noresize scrolling="no" marginwidth="0" marginheight="0" src="vfa.php">
    <frame name="frmsite" src="адрес рекламируемого сайта">
    </frameset>

    </head>
    </html>

    если кто поможен дельным советом ,скриптом ( от меня благодарность виде вмз на кошель- телефон )
     
  20. #Wolf#

    #Wolf# Elder - Старейшина

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    PHP:
    preg_match_all('#(\+[0-9]{3}[\-][0-9]{2,3}[\-][0-9]{7})#'$text$matches);
    не "рационально", но работает :)
     
    1 person likes this.
Thread Status:
Not open for further replies.