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

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

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

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

    Joined:
    4 Jul 2007
    Messages:
    37
    Likes Received:
    27
    Reputations:
    -8
    2Chaak, там может меняться значения урла http://championat.ru;24311 и фильтр на ; не корректно выдирает, нужно именно
    PHP:
    "> от сюда</a> 
    выдрать.
     
  2. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    #">(.*?)</a>#
     
    1 person likes this.
  3. Mescalin

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

    Joined:
    4 Jul 2007
    Messages:
    37
    Likes Received:
    27
    Reputations:
    -8
    не работает , вот так норм )
    PHP:
    preg_match_all('#<a href="/go\.shtml\?(.*)(>)(.*)</a>#'$str$Result); 
     
  4. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Нужно 2 регулярки под JavaScript.

    1) Выпарсить данные в строке вида
    Code:
    
    		                        <TD class="txtAddDet" height="1">
    		                            
    		                            
    		                            411 CROSS CREEK DR
    		                            
    		                            <BR>
    		                            New York,
    		                            NC&nbsp;444344-1234
    		                            
    		                            
    		                        </TD>
    
    
    Все данные между
    Code:
     <TD class="txtAddDet" height="1">
    и
    Code:
     </TD>
    2) Выпарсить данные в строке вида
    Code:
    		                        <TD  class="txtAddDet" valign="top" align="left">
    
    		                            
    		                            
    		                            Personal phone number:&nbsp;111-222-333
    
    		                            
    		                    </TD>
    
    Необходимо выпарсить Personal phone Number:&nbsp;111-222-333
     
  5. ChymeNik

    ChymeNik Member

    Joined:
    31 Aug 2010
    Messages:
    29
    Likes Received:
    7
    Reputations:
    9
    Как можно спарсить все строки которые начинаются на {"id":" и кончаются на "число"}" из HTML-текста ?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    ChymeNik В вашем посте слишком много одинаковых кавычек
    PHP:
    preg_match_all('~\{"id":.*?\d+\}~'$in$out); 
    var_dump($out);
     
    _________________________
    #1726 Gifts, 14 Mar 2012
    Last edited: 14 Mar 2012
  7. derik2011

    derik2011 New Member

    Joined:
    10 Jun 2011
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    PHP:
    </div><!-- <div class="row4" style="padding: 0px"> -->
    <
    div id="pnavi"><a href="?name=Neutrino7&amp;sid=&amp;P=2">след</a>&gt;<br/><span class="page_is">*1*</span>
    <
    a href="?name=Neutrino7&amp;sid=&amp;P=2"><span class="page">*2*</span></a>
    <
    a href="?name=Bestboy&amp;sid=&amp;P=3"><span class="page">*3*</span></a>
    <
    a href="?name=Neutrino7&amp;sid=&amp;P=4"><span class="page">*4*</span></a>
    ..<
    a href="?name=Neutrino7&amp;sid=&amp;P=27"><span class="page">*27*</span></a>
    <
    form method="get" action="?name=Neutrino7&amp;sid=&amp;"><input name="P" size="3" style='-wap-input-format: "5N"' maxlength="5" value=""/><input type="hidden" name="name" value="Neutrino7"/><input type="hidden" name="sid" value=""/><input type="submit" value="Go!"/></form></div>
    <
    form action="http://spaces.ru/guestbook/?P=-1&amp;name=Neutrino7&amp;sid=9596709910115463" method="post">
        
            
                        <
    div class="row4">
                
                
                    <
    input type="submit" name="urlbtn" value="Вставить ссылку" />


                <
    textarea name="text" rows="5" cols="17" style="width: 95%"></textarea><br />
            </
    div>

            
        
            
                <
    input type="submit" name="cfms" value="Отправить"/>
            
        
        
            <
    input type="hidden" name="sid" value=""/>
        
            <
    input type="hidden" name="FI" value="61"/>
        
            <
    input type="hidden" name="CK" value="942"/>
        
            <
    input type="hidden" name="link_id" value="0"/>
        
        <!--<
    div class="row4"><input type="submit" name="cfms" value="Отправить"/></div>-->
    </
    form>
    С 8 строки нужно спарсить ети цифры 9596709910115463 С учётом того что ник в данном случае bestboy может менятся ....Ето часть страницы.Зарание благодарю
     
  8. Melfis

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

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    /sid=(\d+)/
     
  9. derik2011

    derik2011 New Member

    Joined:
    10 Jun 2011
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    PHP:
                <input type="submit" name="cfms" value="Добавить"/>
            
        
            
                <
    style type="text/css">
    .
    response {
        
    cursorpointer
        
    text-decorationunderline;
        
    color#069;
        
    background-colorwhite;
        
    border0;
    }
    .
    response:hover {
        
    colorred;
    }
    </
    style>

    <
    input class="response" title="Ответ" type="submit" name="reply" value="Ответ" />
    <
    input type="hidden" name="ll" value="30002060989"/>

            
        
        
            <
    input type="hidden" name="sid" value=""/>
        
            <
    input type="hidden" name="FI" value="8686"/>
        
            <
    input type="hidden" name="CK" value="186886967797462"/>
        
            <
    input type="hidden" name="link_id" value="0"/>
        
    </
    form>




    <
    div class="clear"></div>



        </
    div>
        
        <
    div id="reklama">
            <
    img src="http://i.spaces.ru/reklama.gif" alt="" class="icon"/><br/>
    <input type="hidden" name="ll" value="30002060989"/>
    Отсюда с етой строки только цифры спасибо зарание!
     
  10. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    RewriteRule

    Подскажите, как сделать вот такой фокус с ссылками: из
    http://site.ru/catalog/washers/model.php?m=zws_2101 такую
    http://site.ru/catalog/washers/zanussi/zws_2101.html
    или из
    http://site.ru/catalog/washers/model.php?m=hw_12500 такую
    http://site.ru/catalog/washers/bosch/hw_12500.html
    ?
    Курю RewriteRule но пока что то не совсем получается :eek:
     
  11. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Откуда берется "zanussi" и "bosch" не указано, но принцип такой:
    Code:
    RewriteEngine On
    RewriteRule ^catalog/washers/zanussi/([-_0-9a-zA-Z]+)\.html$ model.php?m=$1
     
    1 person likes this.
  12. Toxa33rus

    Toxa33rus Member

    Joined:
    31 Mar 2012
    Messages:
    41
    Likes Received:
    6
    Reputations:
    0
    Пишу свою первую в жизни регулярку:
    PHP:
    preg_match_all('#\{"id":"(.+?\d)"\}"#'$in$out);
    print_r($out);
    Если укажите на лоховство буду рад :)
     
    #1732 Toxa33rus, 2 Apr 2012
    Last edited: 2 Apr 2012
  13. Toxa33rus

    Toxa33rus Member

    Joined:
    31 Mar 2012
    Messages:
    41
    Likes Received:
    6
    Reputations:
    0
    PHP:
    preg_match_all('#Personal phone Number:&nbsp;([-0-9]+)#'$in$out);
     
    print_r($out);
    PHP:
    preg_match_all('#<TD class="txtAddDet" height="1">(.+)<\/TD>#'$in$out);
     
    print_r($out);
     
    #1733 Toxa33rus, 2 Apr 2012
    Last edited: 2 Apr 2012
  14. derik2011

    derik2011 New Member

    Joined:
    10 Jun 2011
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0
    С етого кода два значение спарсить
    <table width="100%" cellspacing="0" cellpadding="0" border="0">
    <tr valign="top">
    <td><p>Введите сообщение длиной<br>не более <span id="max_number"></span>&nbsp; символов <span id="lang_mode"></span>:</p></td>
    <td>&nbsp;</td>
    </tr>
    <tr valign="top">
    <td width="50%">
    <input type="hidden" name='b4870e505f27b5c07b39b6c456c95354' value="1781588124" >
    <textarea name="message" id="message" style="width:205px; height:95px;" onKeyPress="checkSymbol(event)" onKeyUp="checkSymbol(event)" onPaste="checkStr()" onClick="checkStr()" maxlength="120"></textarea>
    <span id="test"></span>
    <table cellpadding="0" cellspacing="0">
    <tr>
    <td width="110"><p>символов осталось:</p></td>
    <td><div id="symbols" align="center"></div></td>
    </tr>
    </table></td>
    <td><p><b>МТС за зміст SMS не відповідає</b><br>Этот информационный текст MTC<br>будет приложен к Вашему сообщению</p>
    <table border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td><input type="radio" name="lang" id="lang_lat" value="lat" class="radio" checked onKeyUp="langChange()" onClick="langChange()"></td>
    <td><label for="lang_lat">латиница</label></td>
    </tr>
    <tr>
    <td><input type="radio" name="lang" id="lang_cyr" value="cyr" class="radio" onKeyUp="langChange()" onClick="langChange()"></td>
    <td><label for="lang_cyr">кириллица</label></td>
    </tr>
    <tr>
    <td><input type="checkbox" class="checkbox radio" name="translit" id="translit" value="1" ></td>
    <td><label for="translit">Использовать транслитерацию</label></td>
    </tr>
    </table>



    И с етого ссылку
    <tr valign="top">
    <td>
    <p><br>Введите, пожалуйста, символы,<br>указанные на рисунке:</p>
    <div>
    <img src="/back/modules/golden/captcha.php?PHPSESSID=8fd4a7e0bfa594b8d22f1c2957c72126&rnd=1781588124" alt="Код" width="120" height="60" border="0" align="middle">
    <input name="captcha" style="width:60px;" maxlength="6">
    </div>
    </td>
    <td>
     
  15. Toxa33rus

    Toxa33rus Member

    Joined:
    31 Mar 2012
    Messages:
    41
    Likes Received:
    6
    Reputations:
    0
    Попробуйте так:
    PHP:
    preg_match_all('#dden" name=.([0-9a-f]+).{9}([0-9]+)#'$in$out); 
    print_r($out);
    PHP:
    preg_match_all('#<img src="(.+?)"#'$in$out); 
     
    print_r($out);  
    Проверить не могу.

    upd:
    Проверил, были косяки. Теперь вроде пашет. 17:57мск
     
    #1735 Toxa33rus, 3 Apr 2012
    Last edited: 3 Apr 2012
  16. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    вот есть регулярка
    Code:
    preg_match_all('`\p{L}+`u', $query, $all_words);
    я так понимаю она удаляет всё сеецсимволы и оставляет только буквы, а можете подсказать как сделать чтобы числа тоже не вырезались?
     
  17. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75

    PHP:
    preg_match_all("/\w+\d+/u"$query$all_words);
     
  18. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    qaz теперь показывает только числа, а мне нужно чтобы числа и буквы
     
  19. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Kruzak
    PHP:
    preg_match_all("/[[:alnum:]]+/u"$query$all_words);
     
    1 person likes this.
  20. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    Skofield, твой вариант вырезает русские буквы
    мне нужно чтобы пропускал буквы любых языков
     
Thread Status:
Not open for further replies.