Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][JavaScript][PHP]Wybieranie stringów regex'em
phpamator
post 29.04.2021, 14:44:51
Post #1





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 29.04.2021, 14:56:20
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e01
https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e02
https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e03
https://kawalekkodu.pl/the-tag-is-out-there...domxpath-s01e04


--------------------
Go to the top of the page
+Quote Post
phpamator
post 29.04.2021, 15:02:10
Post #3





Grupa: Zarejestrowani
Postów: 321
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 29.04.2021, 22:13:39
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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>


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 15:44