Rezultate 1 la 7 din 7

Subiect: Ajutor preluare informatii cu regex

  1. #1
    Avatarul lui crystalzone
    crystalzone este deconectat Membru SeoPedia
    Reputatie:
    23
    Data înscrierii
    15th July 2011
    Locaţie
    Bucuresti
    Vârstă
    33
    Posturi
    113
    Putere Rep
    23


    Lightbulb Ajutor preluare informatii cu regex

    Salutare,

    Se da urmatorul cod html dintr-o sursa a unui site:
    Cod HTML:
    <ul class="sizeSelect dropdown-menu" id="sUM1970">
                    <li data-sku="UM1970/S" class="sizeSelectItem ">
    
                            <a onclick="setDropdownText('UM1970/S', 'UM1970'); "><span>Small Chest 35-37&quot;</span> <span class="stockStatusMessage"> </span></a>
                    </li>
                    <li data-sku="UM1970/M" class="sizeSelectItem ">
    
                            <a onclick="setDropdownText('UM1970/M', 'UM1970'); "><span>Medium Chest 38-40&quot;</span> <span class="stockStatusMessage"> Low Stock</span></a>
                    </li>
                    <li data-sku="UM1970/L" class="sizeSelectItem disabled">
    
    L Sold Out                </li>
                    <li data-sku="UM1970/XL" class="sizeSelectItem disabled">
    
    XL Sold Out                </li>
            </ul>
    Vreau sa preiau marimile din acest cod.
    Eu am reusit sa preiau marimile S, M, L, XL din codul <li data-sku="UM1970/M" cu functia asta:
    Cod PHP:
    function getSizes($html$sku){
          if ( 
    preg_match_all("/<li.*data-sku=\"".$sku."\/(.*)\".*/Usi"$html$rez) ) {
             return 
    $rez[1];
          } return array();
       } 
    Dar problema este ca le preia pe toate iar unele din au un disabled, cele care au disabled inseamna ca nu mai sunt in stoc si nu vreau sa le preiau si pe acestea.
    As vrea sa preiau ce se afla intre span (Medium Chest 38-40&quot din codul asta <a onclick="setDropdownText('UM1970/M', 'UM1970'); "><span>Medium Chest 38-40&quot;</span> dar sa preiau doar Medium, fara Chest 38-40&quot; iar cele care au disabled in <li> sa nu le preiau.
    Sper ca am explicat destul de bine.
    Ma poate ajuta cineva?
    RankySEO - Baza de date backlinks, Nexyo - Gaseste cel mai bun psiholog online, OneBlog

  2. #2
    Avatarul lui crystalzone
    crystalzone este deconectat Membru SeoPedia
    Reputatie:
    23
    Data înscrierii
    15th July 2011
    Locaţie
    Bucuresti
    Vârstă
    33
    Posturi
    113
    Putere Rep
    23


    Implicit

    Nu ma poate ajuta nimeni?
    RankySEO - Baza de date backlinks, Nexyo - Gaseste cel mai bun psiholog online, OneBlog

  3. #3
    Avatarul lui Ciprian.Olaru
    Ciprian.Olaru este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    6th August 2007
    Locaţie
    Bucuresti
    Posturi
    573
    Putere Rep
    0


    Implicit

    partial on-topic: pyhton + beautifulsoup rezolva problemele astea de parsing html destul de simplu dpdv al codului.
    https://www.crummy.com/software/BeautifulSoup/bs4/doc/

  4. #4
    Avatarul lui crystalzone
    crystalzone este deconectat Membru SeoPedia
    Reputatie:
    23
    Data înscrierii
    15th July 2011
    Locaţie
    Bucuresti
    Vârstă
    33
    Posturi
    113
    Putere Rep
    23


    Implicit

    Dar nu stiu Python.
    RankySEO - Baza de date backlinks, Nexyo - Gaseste cel mai bun psiholog online, OneBlog

  5. #5
    Avatarul lui susp3kt
    susp3kt este deconectat Membru SeoPedia
    Reputatie:
    24
    Data înscrierii
    21st March 2011
    Locaţie
    Tg Jiu
    Vârstă
    31
    Posturi
    44
    Putere Rep
    24


    Implicit

    Incearca cu regex-ul asta:

    Cod PHP:
    preg_match_all("/<a onclick=\"setDropdownText\('(.*)', '(.*)'\); \"><span>(.*) Chest (.*)<\/span>/Usi"$html$output); 

  6. #6
    Avatarul lui crystalzone
    crystalzone este deconectat Membru SeoPedia
    Reputatie:
    23
    Data înscrierii
    15th July 2011
    Locaţie
    Bucuresti
    Vârstă
    33
    Posturi
    113
    Putere Rep
    23


    Implicit

    Citat Postat în original de susp3kt Vezi Post
    Incearca cu regex-ul asta:

    Cod PHP:
    preg_match_all("/<a onclick=\"setDropdownText\('(.*)', '(.*)'\); \"><span>(.*) Chest (.*)<\/span>/Usi"$html$output); 
    Multumesc,

    Preia informatiile cu codul dat de tine dar as vrea sa nu preia si informatiile care au class="sizeSelectItem disabled" in codul dat de mine.
    RankySEO - Baza de date backlinks, Nexyo - Gaseste cel mai bun psiholog online, OneBlog

  7. #7
    Avatarul lui Dubfx
    Dubfx este deconectat Junior SeoPedia
    Reputatie:
    0
    Data înscrierii
    21st September 2014
    Posturi
    5
    Putere Rep
    0


    Implicit

    Nu stiu de ce domnii admini nu au aprobat mesajul anterior cu rezolvarea, asa ca il mai pun o data:

    Cod PHP:
    <?php
    $string 
    '
    <ul class="sizeSelect dropdown-menu" id="sUM1970">
                    <li data-sku="UM1970/S" class="sizeSelectItem ">

                            <a onclick="setDropdownText(\'UM1970/S\', \'UM1970\'); "><span>Small Chest 35-37&quot;</span> <span class="stockStatusMessage"> </span></a>
                    </li>
                    <li data-sku="UM1970/M" class="sizeSelectItem ">

                            <a onclick="setDropdownText(\'UM1970/M\', \'UM1970\'); "><span>Medium Chest 38-40&quot;</span> <span class="stockStatusMessage"> Low Stock</span></a>
                    </li>
                    <li data-sku="UM1970/L" class="sizeSelectItem disabled">

    L Sold Out                </li>
                    <li data-sku="UM1970/XL" class="sizeSelectItem disabled">

    XL Sold Out                </li>
            </ul>
    '
    ;

    preg_match_all("#<\s*?li\b[^>]*>(.*?)</li\b[^>]*>#s"$string$matches);

    $stock = [];
    foreach(
    $matches[0] as $li){
        if(!
    strstr($li'disabled')){
            
    preg_match('/data-sku="(.*?)"/i'$li$sku);
                    
    preg_match('/"\>\<span\>(.*?) /i'$li$size);
            
    $stock[] = ['sku'=>$sku[1], 'size'=>$size[1]];
        }
    }
    var_dump($stock);

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Preluare date SQL
    De danP în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 8th May 2011, 22:52
  2. Preluare din xml
    De Adry în forumul Client side
    Răspunsuri: 6
    Ultimul Post: 18th June 2009, 16:14
  3. help cu regex
    De florin în forumul Server side
    Răspunsuri: 0
    Ultimul Post: 19th March 2009, 12:13
  4. Regex problem
    De Quietkiller în forumul Server side
    Răspunsuri: 8
    Ultimul Post: 21st August 2008, 16:56
  5. Preluare METEO
    De aka_eu în forumul Bar, lobby...
    Răspunsuri: 2
    Ultimul Post: 23rd July 2006, 15:33

Etichete pentru acest subiect

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •