Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyrażenia regularne
brobo
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2012

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


Witam, z wyrażeń regularnych niestety jestem cienki jak.... stąd mój problem.

Krótkim kawałkiem kodu chciałbym usuwać nadmiar informacji z kanału rss tzn. chcę usunąć tagi <content:encoded>.*</content:encoded>.

  1. $output = preg_replace('/(\<content\:encoded\>.*\<\/content\:encoded\>)/s', '', $output);


Niestety efekt jest taki, że usuwa wszystko co znajduje się między pierwszym wystąpieniem <content:encoded>, a ostatnim wystąpieniem </content:encoded> (w całym kodzie kanały), zamiast usuwać pojedyncze elementy. Dobrze byłoby wykluczyć występowanie w ciągu .* chociażby </content:encoded> lub innego tagu xml w rss np. <title>. Tylko jak?

Z góry dzięki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Adi32
post
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


  1. $output = preg_replace('/(\<content\:encoded\>.*\<\/content\:encoded\>)/s', '', $output);


To jest zachłanne.

Potrzebujesz leniwego:

  1. $output = preg_replace('/(\<content\:encoded\>.*?\<\/content\:encoded\>)/s', '', $output);
Go to the top of the page
+Quote Post
hind
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


To powinno lepiej zadziałać:
  1. $output = preg_replace('/(\<content\:encoded\>(.*)\<\/content\:encoded\>)/s', '$1', $output);
Go to the top of the page
+Quote Post
brobo
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.02.2012

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


Cytat(Adi32 @ 6.04.2012, 08:11:43 ) *
Potrzebujesz leniwego:

  1. $output = preg_replace('/(\<content\:encoded\>.*?\<\/content\:encoded\>)/s', '', $output);


Ehh, aż wstyd, że takie proste było. O to chodziło (IMG:style_emoticons/default/smile.gif) .

@hind niestety Twoja propozycja pozostawia kanał bez zmian (zamienia znaleziony ciąg znalezionym ciągiem?).

Dzięki, pozdrawiam!

Ten post edytował brobo 6.04.2012, 07:45:02
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: 23.08.2025 - 08:55