Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Filtracja znacznika {AF} w tekście
reyne
post 12.11.2012, 19:13:49
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?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 12.11.2012, 19:20:05
Post #2





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

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


Kod
'/{AF|rokbox}(.*){\/AF|rokbox}/'


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
reyne
post 12.11.2012, 19:28:03
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 12.11.2012, 19:34:15
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}(.*)/'


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
reyne
post 12.11.2012, 19:38:07
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 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 12.11.2012, 19:42:49
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


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
reyne
post 12.11.2012, 21:49:39
Post #7





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

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


Ś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ć?

Ten post edytował reyne 12.11.2012, 21:50:17
Go to the top of the page
+Quote Post
d3ut3r
post 12.11.2012, 22:38:28
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 smile.gif


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
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: 28.04.2024 - 04:21