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

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

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

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    PHP:
    preg_match('# <div class="summary">([0-9]*) фотографии<span class="divider"> #ui',$page,$res);
    echo 
    $res[1];
     
    1 person likes this.
  2. 0ldbi4

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

    Joined:
    14 Apr 2008
    Messages:
    264
    Likes Received:
    51
    Reputations:
    10
  3. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    задача состоит в том чтобы спарсить ники юзеров с 1 сайта
    вот где можно применить регулярное выражение
    <a href="searchpro.aspx?author=ник юзера&top=50
    <span class="subhead">ник юзера</span>
    Дело состоит в том. что в ники могут использоватся цифры.буквы.все спец символы. и пробелы. простые ники я могу собрать когда дело доходит до символов пробелов и тд. у меня ничего не получается. подскажите плз

    а также логин может содержать русские буквы
     
    #1123 mazaxaka, 13 May 2010
    Last edited: 13 May 2010
  4. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    подчти разобрался не понятно только как использовать символы @#$% они не дают скрипту исполнится
     
  5. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Экранируй их \@ \$ \# \%
     
  6. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    спасибо работает. подкажите как парсить русски имена ? кодировка утф-8 в регурярке стоит а-я но оно не парсит
     
  7. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    А текст который парсить ты в какой кодировке получаешь?
    Попробуй:
    iconv();
     
  8. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    windows 1251 . кодировка страници в утф-8. анг буквы и символы норм принемает а вот русские не как
     
  9. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    опять mazaxaka и опять у него проблемы с регулярками и кодировкой :D
     
  10. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    да ето снова я) ну не даются они мне. елементарные освоил. а вот по сложней не как.
    страница в утф-8 а в регулярке а-я проверяется.. что делать?(
     
  11. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Перекодировать из UTF-8 в CP1251. Логично?)
     
  12. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    не думаю что логично использовать кодировку CP1251.
    Все должно быть в UTF-8
     
  13. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Ну и переодируй
    iconv("CP1251","UTF-8",$text);
     
  14. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Помогите вырезать id
    Code:
    <a href="/club/user/?id=[COLOR=Wheat]1022119[/COLOR]&amp;sid=tzufdsse">
    
    Пытаюсь делать так

    PHP:
    preg_match_all('#<a href="/club/user/\?id=(.*)&amp;sid=tzufdskv">#iU',$result,$users);
    echo 
    "<pre>";
    print_r($users);
    Но возвращает пустой массив
    Code:
    Array
    (
        [0] => Array
            (
            )
    
        [1] => Array
            (
            )
    
    )
    
     
    #1134 SeNaP, 14 May 2010
    Last edited: 14 May 2010
  15. phpdreamer

    phpdreamer Member

    Joined:
    26 Jul 2009
    Messages:
    522
    Likes Received:
    86
    Reputations:
    19
    PHP:
    $result 'blablablabla <a href="/club/user/?id=1022119&amp;sid=tzufdsse"> blablablablablabla';
    preg_match('#<a href="/club/user/\?id=([0-9]{1,10})&amp;sid=tzufdsse">#',$result,$id);  
    print_r($id[1]);
     
  16. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Ну у меня почти такая же регулярка :)
    Только вот почему она тут не работает?
    PHP:
    $ch curl_init("site");
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    $result curl_exec($ch);
    preg_match_all('#<a href="/club/user/\?id=([0-9]*)&amp;sid=tzufdskv">#iU',$result,$users);
    echo 
    "<pre>";
    print_r($users);
    curl_close($ch);
    А вот если так
    PHP:
    $site file_get_contents("site");
    preg_match_all('#<a href="/club/user/\?id=([0-9]*)&amp;sid=tzufdskv">#iU',$site,$users);
    echo 
    "<pre>";
    print_r($users);
    То всё работает нормально :confused:
     
    #1136 SeNaP, 14 May 2010
    Last edited: 14 May 2010
  17. jenaDI

    jenaDI New Member

    Joined:
    14 Mar 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    Вопрос по регулярным выражениям

    Всем привет.
    В общем у меня такая задача :

    Мне нужно,чтобы скрипт извлекал номер из ссылки , и записывал его в массив .

    <?php

    $html =
    '
    <a href="details.php?id=1">Название1</a>
    <a href="details.php?id=2">Название2</a>
    <a href="details.php?id=3">Название3</a>
    ';



    ПОМОГИТЕ ПОЖАЛУЙСТА!!!
     
  18. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    PHP:
    preg_match_all('#<a href="details.php\?id=(.*)">(.*)</a>#',$html,$a);
    print_r($a);
    я точно не знаю какой номер,так что посмотри сам что нужно
     
  19. jenaDI

    jenaDI New Member

    Joined:
    14 Mar 2010
    Messages:
    25
    Likes Received:
    0
    Reputations:
    0
    почти , только в массив заноситься и текст а мне только цифра нужны
     
  20. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    PHP:
    preg_match('/"details.php\?id=(\d+)"/i'$html$m);
    var_dump($m[1]);
    ну и нахрена отдельную тему создавать?
     
Thread Status:
Not open for further replies.