Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Filtracja znacznika {AF} w tek¶cie
Forum PHP.pl > Forum > Przedszkole
reyne
Witam, pobieram z RSS opis linku w formacie:


  1. {AF}tekst ktory chce wyswietlic{/AF}


i

w innym linku

  1. {rokbox thumb=|images/stories/2012/2012-11-12_08.png| size=|500 314| title=|Wyr?questionmark.gif?nienia ::Fot.Mariusz Czajkowski| thumbsize=|250 157| }images/stories/2012/2012-11-12_08.png{/rokbox} - tego nie chce wyswietlic
  2. tutaj tekst który chcę wy¶wietlić


Wiem tylko, że sprawa zachacza o wyrażenia regularne i preg_match(), Pytanie: jak wydobyć tekst ze znaczników z klamr± ({AF}) oraz w następnym przypadku poza ni± ({rokbox})?
!*!
Kod
'/{AF|rokbox}(.*){\/AF|rokbox}/'
reyne
Może się trochę Ľle wyraziłem na pocz±tku, z AF chciałbym wy¶wietlić a w drugim przypadku chciałbym wy¶wietlić to co jest za {/rockbox}. Kod powyżej w obu przypadkach zwraca nazwę AF lub rokbox w tablicy.
!*!
Kod
'/{AF}([a-zA-Z0-9\s]+){\/AF}/'


A co do {/rokbox}, to cały czas jest taki schemat?

Kod
'/{\/rokbox}(.*)/'
reyne
Pierwsza opcja już działa, dzięki smile.gif

Co do drugiego to mam tak jw

  1. $str2 = '{rokbox thumb=|images/stories/2012/2012-11-12_05.png| size=|310 381| title=|Pose?? oskar??a ::Fot.Mariusz Czajkowski| thumbsize=|155 190| }images/stories/2012/2012-11-12_05.png{/rokbox}
  2. Tutaj jest tekst ktory chce pokazac.
  3. ';
  4. preg_match('/{\/rokbox}(.*)/', $str2, $asd);
  5. print_r($asd);


Ale zwraca tylko
  1. Array ( [0] => {/rokbox} [1] => )
!*!
Nie pamiętam jak± flagę się dawało dla (.*), więc może tak:
Cytat
'/{\/rokbox}([a-zA-Z-0-9\s\n\r]+)/'


Choć to też jest takie na pół gwizdka.
reyne
¦miga, dzięx! smile.gif

Jest mały problem smile.gif Gdy pojawiaj± się polskie znaki, ucinało tekst, wprowadziłem więc zmiany:

  1. $str2 = '
  2. {rokbox thumb=|images/stories/2012/2012-11-12_05.png| size=|310 381| title=|Pose?? oskar??a ::Fot.Mariusz Czajkowski| thumbsize=|155 190| }images/stories/2012/2012-11-12_05.png{/rokbox}
  3. Tutaj jest tekst ktory chce pokazać. A tam było 13 dzieci test to jest.
  4.  
  5. ';
  6. preg_match('/{\/rokbox}([0-9-a-zA-Z±ćęłńó¶ĽżˇĆĘŁŃÓ¦¬Ż\s\n\r]+)/', $str2, $asd);



Działa, ale przestaje wy¶wietlać tekst przy pierwszej pojawiaj±cej się liczbie, chociaż niby zadeklarowałem je w zbiorze. Jak to poprawić?
d3ut3r
  1. preg_match('/{\/rokbox}([0-9-a-zA-Z±ćęłńó¶ĽżˇĆĘŁŃÓ¦¬Ż\.\s\n\r]+)/', $str2, $asd);


Zapomniałe¶ o kropce smile.gif
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.