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

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

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

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    #http://5ka\.ru//(.+?)/[0-9]+/.+\.html#i
     
    1 person likes this.
  2. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
    $host 
    "http://5ka.ru//3/5153/1.html";
    preg_match("|^http:\/\/.*\/\/([0-9]+)\/|",$host,$a);
    print_r ($a[1]);
    ?>
     
  3. #Wolf#

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

    Joined:
    26 Mar 2008
    Messages:
    375
    Likes Received:
    166
    Reputations:
    16
    имеем:
    PHP:
    http://site.ru/page=about
    http://site.ru/?news&id=1
    http://site.ru/?products&id=1
    нужно:
    PHP:
    http://site.ru/about
    http://site.ru/news/1
    http://site.ru/products/1
    спасибо :)
     
  4. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    mod_rewrite
    Code:
    RewriteRule ^about$ /?page=about
    RewriteRule ^(.+)/(.*)$ /?$1&id=$2
    
    Что-то типа.
     
    1 person likes this.
  5. geforce

    geforce Member

    Joined:
    21 Aug 2008
    Messages:
    300
    Likes Received:
    26
    Reputations:
    -5
    Пользуюсь регуляркой в первые! Подскажите?

    Есть html код который нада вырезать :

    PHP:
    <div class="audioRow" id="audio72620190">  <a name='72620190'></a>   <table width="100%"><tbody>   <tr><td style="width: 20px; vertical-align:top">   <img class="playimg" onclick="return operate(72620190,'http://cs4532.vkontakte.ru/u7309745/audio/63d88b575624.mp3',440);" id="imgbutton72620190" nosorthandle="true" src="images/play.gif"/>   </td>   <td style="width: 360px;"><div class="audioTitle">    <b id="performer72620190"><a href='gsearch.php?section=audio&c[q]=О. Почепа'>ОПочепа</a></b><span>&nbsp;-&nbsp;</span><span id="title72620190">Те Кто Меня (Master House Remix 2009)</span> </div>    <div class="duration">7:20</div>   </td>   </tr>   </tbody></table>    <div style="height:14px;margin-left:28px;">  <div id="line72620190" class="playline"></div>  <div id="toddler72620190" class="toddler">  </div>  <div id="player72620190" style="display: none;" class="playerClass">  </div>  </div>    <div id="lyrics72620190"></div>  </div>
    С чего начать?
     
  6. Solker

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

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    geforce

    #(.*)#
     
  7. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Вопрос не полный, ЧТО именно вырезать и пример ОТКУДА. На вскидку я догадываюсь что тебя интересует ссылка на мп3 файл, описание.

    PHP:
    <?php
    $str 
    = <<<HTML
    <div class="audioRow" id="audio72620190">  <a name='72620190'></a>   <table width="100%"><tbody>   <tr><td style="width: 20px; vertical-align:top">   <img class="playimg" onclick="return operate(72620190,'http://cs4532.vkontakte.ru/u7309745/audio/63d88b575624.mp3',440);" id="imgbutton72620190" nosorthandle="true" src="images/play.gif"/>   </td>   <td style="width: 360px;"><div class="audioTitle">    <b id="performer72620190"><a href='gsearch.php?section=audio&c[q]=О. Почепа'>О. Почепа</a></b><span>&nbsp;-&nbsp;</span><span id="title72620190">Те Кто Меня (Master House Remix 2009)</span> </div>    <div class="duration">7:20</div>   </td>   </tr>   </tbody></table>    <div style="height:14px;margin-left:28px;">  <div id="line72620190" class="playline"></div>  <div id="toddler72620190" class="toddler">  </div>  <div id="player72620190" style="display: none;" class="playerClass">  </div>  </div>    <div id="lyrics72620190"></div>  </div>
    HTML;


    if(
    preg_match('#(http://.*\.mp3).*<span id="title.*">(.*)</span>.*<div class="duration">(.*)</div>#Uis'$str$m))
    echo 
    "<a href='$m[1]'>$m[2] [$m[3]]</a>";
    ?>
    Выводит : ссылка [длинна трека]
     
  8. 0ldbi4

    0ldbi4 Elder - Старейшина

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
    Code:
    <div class="itemtext nop "style="margin-left:0">
     <img src="[COLOR=Orange]/img/status/xStatus_14.gif[/COLOR]" alt="Статус" title="Статус" height="15" width="16"/> 
     [COLOR=Orange]Прихожу в себя ...[/COLOR]
    <div class="infobar"><div class="source ">
    <a href="/msg/52678751">более 5 часов назад</a> через <a class="nobg" href="http://qip.ru/ru/pages/download_infium_ru/" title="QIP Infium">qip</a></div>
    <div class="fr small">
     <a class="msg_ans_ie6fl" href="/msg/52678751" onclick="return login('/msg/52678751');">ответить</a> </div> 
    В регулярках мало что понимаю помогите выпарсить отмеченные данные.
     
    #948 0ldbi4, 21 Feb 2010
    Last edited: 21 Feb 2010
  9. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    <?php
    $text
    ='<div class="itemtext nop "style="margin-left:0">
     <img src="/img/status/xStatus_14.gif" alt="Статус" title="Статус" height="15" width="16"/> 
     Прихожу в себя ...
    <div class="infobar"><div class="source ">'
    ;
     
    preg_match('#<img src="(.*)" alt="Статус" title="Статус" height="15" width="16"/>#',$text,$m);
     
    preg_match('#<img src=".*" alt="Статус" title="Статус" height="15" width="16"/>\s\r\n(.*)<div class="infobar"><div class="source ">#s',$text,$t);
     echo 
    "$t[1] $m[1]";
    ?>
    уже хочется спать
     
    #949 Compton, 22 Feb 2010
    Last edited: 22 Feb 2010
  10. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    PHP:
    <?php
    $data 
    = <<<HTML
    <div class="itemtext nop "style="margin-left:0">
     <img src="/img/status/xStatus_14.gif" alt="Статус" title="Статус" height="15" width="16"/> 
     Прихожу в себя ...
    <div class="infobar"><div class="source ">
    <a href="/msg/52678751">более 5 часов назад</a> через <a class="nobg" href="http://qip.ru/ru/pages/download_infium_ru/" title="QIP Infium">qip</a></div>
    <div class="fr small">
     <a class="msg_ans_ie6fl" href="/msg/52678751" onclick="return login('/msg/52678751');">ответить</a> </div> 
    HTML;

    if(
    preg_match('#<img src="(.*)" alt="Статус" title="Статус" height="15" width="16"/>(.*)<div#Uis'$data$m))
    echo 
    'Статус-ссылко: <b>'.$m[1].'</b><br>Статус-текст<b>'.$m[2].'</b>';
    ?>
     
  11. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Нужна регулярка для универсального выдирания ссылок из html.
    Спасибо.
     
  12. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    '#<a[^>]*? href="(.*)"#'
     
  13. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Далеко не универсально..
     
  14. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Чтоб не разводить на 15 топиков, можно было б с своем посте написать что именно тебе не нравится в регулярке, и получить ответ.
     
  15. j0ker13

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

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    реально ли составить регулярку на проверку одинаковых знаков?
    например: 11111, 55555555
     
  16. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    j0ker13
    PHP:
    <html>
    <form id="form1" name="form1" method="post" action="">
      <input name="text" type="text" id="text" />
      <input type="submit" name="Submit" value="Submit" />
    </form>

    </html>
    <?
    $text=$_POST['text'];
    if(preg_match('/1{2,}|2{2,}|3{2,}|4{2,}|5{2,}|6{2,}|7{2,}|8{2,}|9{2,}|0{2,}/',$text)){
    echo "good";
    }else{
    echo "bad";

    ?>
     
    1 person likes this.
  17. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Как будет правельно ?
    $s=preg_replace('#<a href="pic.php?namesid=(.*);name=(.*);">(.*)</a>#iU','',$s);
    (.*) - неизвестно т.е. меняется с каждым разом
     
    #957 SeNaP, 25 Feb 2010
    Last edited: 25 Feb 2010
  18. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php 
    $s 
    '
        текст1<a href="pic.php?namesid=1;name=вася;">вася</a>
        текст2<a href="pic.php?namesid=2;name=петя;">петя</a>
        текст3<a href="pic.php?namesid=3;name=егор;">егор</a>
    '
    ;
    $s preg_replace('#<a href="pic.php\?namesid=.*;name=.*;">.*</a>#iU','',$s);
    echo 
    $s;
    ?>
     
    1 person likes this.
  19. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Есть что то типа этого
    PHP:

    $s
    ='<b>Вася</b>';
    $s preg_replace('#<b>.*</b>#iU','\\1',$s);
    echo 
    $s //Вася
    Нам вернёт "Вася" .
    А как сделать, чтобы вернуло просто теги "<b></b>" ?
     
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php 
    $string 
    '<b>вася</b>';
    echo 
    preg_replace('#(<b>)(.*)(</b>)#i''${1}$3'$string);
    ?>
    вкуривай уже)

    http://php.net/manual/en/function.preg-replace.php
     
    #960 Pashkela, 25 Feb 2010
    Last edited: 25 Feb 2010
Thread Status:
Not open for further replies.