Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_match_all wycinanie zawartości ul
mgorka92
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 27.07.2013

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


Cześć potrzebuję z content strony wyciąć zawartościu znaczników ul ale zawartość każdego ul-a musi mieć osobny klucz mam takie wyrażenie
  1. preg_match_all('/<ul(.*)>(.*)<\/ul>/is',$t,$menu);
ale ono mi cały content wycina ten który jest między pierwszym ul a ostanim ul zamykającym dając takie wyrażenie
  1. preg_match_all('/^(<ul(.*)>)(.*)(<\/ul>)$/is',$t,$menu);
nie otrzymuję wyników. Czy może ktoś mi podpowiedzieć co źle robię?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--kacper.chrapa--
post
Post #2





Goście







Witam,

Twoje wyrażenie jest poprawne ( to pierwsze ) - tylko dodaj modyfikator U (ungreedy). Domyslnie, regexp dopasowuje maksymalna ilosc znakow,
jaką moze złapać na dany wzorzec - czyli .* lapie Ci całość contentu. Ale jesli wylaczysz mu "pazernosc" - to bedzie dopasowywal jak najmniej znakow dla .* .
Czyli:
  1. $dane = '<ul class="cosik">
  2. <li>raz</li>
  3. <li>dwa</li>
  4. </ul>
  5. <p>asdasda</p>
  6. <ul class="dwa">
  7. <li>trzy</li>
  8. <li>cztery</li>
  9. </ul>';
  10.  
  11.  
  12. preg_match_all("/<ul.*>(.*)<\/ul>/Uis",$dane,$wynik);//modyfikator U - ungreedy
  13.  
  14. var_dump($wynik[1]);



Pozdrawiam ,
Kacper Chrapa
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 04:53