Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z wyrażeniem regularnym i preg_match()
-Kiszczak-
post
Post #1





Goście







  1. $tager = '/<div class="tags">(.+?)<a class="tag" href="(.+?)">(.+?)<\/a>&#32(.+?)<\/div>/ims';
  2. preg_match_all($tager, $nazwa, $tager);
  3. echo $tag=$tager[0][$a];


Chciałbym wyciągnąć tylko to co jest między <div class="tags">(.+?)<a , czyli pierwsza zmienna (sam tekst), ale w wyniku
dostaje całość (z htmlem) czyli:
  1. <div class="tags">blablabla<a class="tag" href="blablabla">balbalbla<\/a>&#32blblablab<\/div>

Aby uzyskać tylko to co chcę muszę używać strip_tags, trim itp.

Jak pobrać zawartość która mnie interesuje bez tej całej 'otoczki' samym preg_match??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zrobić
print_r
na tablicy która Cię interesuje, będziesz wiedział o który indeks chodzi.
Go to the top of the page
+Quote Post
-Kiszczak-
post
Post #3





Goście







Z jakiegoś powodu nie ma indeksu, który zawierałby wybrany fragment jako sam tekst.
Są tylko linki, mimo iż przecież zaznaczyłem wyraźnie miejsce, który teks chciałbym pobrać
Pierwszy (.+?).
Co jest nie tak ?
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


  1. $tager = '/<div class="tags">(.+?)<a class="tag" href="(.+?)">(.+?)<\/a>&#32(.+?)<\/div>/ims';
  2. preg_match_all($tager, $nazwa, $tager);
  3. echo $tag=$tager[1][0];


i ogólniej jak już robisz coś takiego to nie koniecznie musisz używać "?" aby osiągnąć ungreedy - czyli niezachłanne wyrażenie. Wystarczy w twoim przypadku zamiast:

Kod
(.+?)

dać:

([^<]+)


(IMG:style_emoticons/default/wink.gif)

Ten post edytował Sephirus 8.05.2012, 07:27:24
Go to the top of the page
+Quote Post

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: 22.08.2025 - 19:46