Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][PHP]Wybieranie stringów regex'em
Forum PHP.pl > Forum > Przedszkole
phpamator
Witam serdecznie po dugiej nieobecnoci,

Wpadlem na pomysl zbudowania prostego wybieracza danych. To nic nowego czy odkrywczego ... wiem ale potrzebuje i jak do tej pory nie mialem z tym problemu tak teraz mam i nie wiem dlaczego.
Otóz pobieram zawartosc strony z ktorej zamierzam wybiera dane, i wrzucam do pliku tekstowego (tak na wszelki wypadek) po czym wciágam go do zmiennej i przeczesuje w celu znalezienia odpowiedniego stringu pasujacego do regexa

  1.  
  2.  
  3. $content = "....<div id="viTabs_0_cnt" class="content sel"><div id="vi-desc-maincntr" class=""><!-- call this inside Tab for Item description --><div class="iti-eu-txt iti-eu-pd u-flR"><div class="itm-num-txt iti-lbl u-flL iti-num vi-iti-lbl-acc-cls" id="" style="">....</div><div id="descItemNumber" class="u-flL iti-act-num itm-num-txt">181152403129</div></div><div id="readMoreDesc" class="ds-lgl-txt u-cb readMore">Seller assumes all responsibility for this listing.</div><div id="descCntId" class="vi-plc-hldr" tabindex="-1"></div><div class="vi-desc-revHistory"><div><span class="vi-desc-revHistory-lbl">Last updated on</span>&nbsp;29 Apr, 2021 08:37:32 BST&nbsp;<span></span></div></div>....";
  4.  
  5. $regex = '/^\<div.id="descItemNumber".*>\d{12}<\/div>/m';
  6.  
  7. $result = preg_match_all($regex, $content , $matches, PREG_OFFSET_CAPTURE);
  8.  
  9. print_r($result);
  10.  
  11.  


Jak widac string tam jest jednak nie chce go wyluskac .....

Co robie zle ?

Albo jak znalezc w stringu dokladnie zawartosc okreslonego tagu, np: <div id="descItemNumber" class="u-flL iti-act-num itm-num-txt">181152403129</div> niezalenie czy wewnatrz znajduja sie kolejne <div>'y

Pozdrawiam
phpamator
O wow, dzieki trueblue, to sie z pewnoscia przyda.
juz po wstepnym zapoznaniu wyglada, ze powinienem nieco zmienic @approach@

niemniej, tak na szybkosci, co jest nie tak ze sposobem ktorego uzylem?

Pozdrawiam
trueblue
Sporo rzeczy. Poczytaj o wyrażeniach regularnych - o grupowaniu, kwantyfikatorach (w tym o niezachłannych).
Kod
<div(.*?)id="descItemNumber"(.*?)>(\d{12})<\/div>

lub
Kod
<div(?:.*?)id="descItemNumber"(?:.*?)>(\d{12})<\/div>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.