Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Filtracja znacznika {AF} w tekście
reyne
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

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


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?(IMG:style_emoticons/default/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})?

Ten post edytował reyne 12.11.2012, 19:26:37
Go to the top of the page
+Quote Post
!*!
post
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Kod
'/{AF|rokbox}(.*){\/AF|rokbox}/'
Go to the top of the page
+Quote Post
reyne
post
Post #3





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

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


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.
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Kod
'/{AF}([a-zA-Z0-9\s]+){\/AF}/'


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

Kod
'/{\/rokbox}(.*)/'
Go to the top of the page
+Quote Post
reyne
post
Post #5





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

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


Pierwsza opcja już działa, dzięki (IMG:style_emoticons/default/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] => )
Go to the top of the page
+Quote Post
!*!
post
Post #6





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


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.

Ten post edytował !*! 12.11.2012, 19:43:15
Go to the top of the page
+Quote Post
reyne
post
Post #7





Grupa: Zarejestrowani
Postów: 73
Pomógł: 1
Dołączył: 19.12.2007

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


Śmiga, dzięx! (IMG:style_emoticons/default/smile.gif)

Jest mały problem (IMG:style_emoticons/default/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ć?

Ten post edytował reyne 12.11.2012, 21:50:17
Go to the top of the page
+Quote Post
d3ut3r
post
Post #8





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


  1. preg_match('/{\/rokbox}([0-9-a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ\.\s\n\r]+)/', $str2, $asd);


Zapomniałeś o kropce (IMG:style_emoticons/default/smile.gif)
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: 24.08.2025 - 18:11