Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie danego elementu z treści występującego 2 razy (+multiline)
Forum PHP.pl > Forum > Przedszkole
miki3475
Witam,
mam problem z usuwaniem danego elementu z podanej treści.

Treść przedstawia się następująco:
  1. <?php
  2.  
  3. function usun($tresc){
  4. $nowa_tresc = preg_replace("#\[usun](.*)\[\/usun]#ms", "", $tresc);
  5. return $nowa_tresc;
  6. }
  7.  
  8. $tresc = "Tytuł maila
  9.  
  10. [usun]http://google.pl[/usun]
  11.  
  12. [kodzik]tresc wiadomosci[/kodzik]
  13.  
  14. [usun]google.pl
  15. google.pl
  16. google.pl
  17. google.pl[/usun]
  18.  
  19. [kodzik]Podpis[/kodzik]";
  20.  
  21. echo usun($tresc);
  22.  
  23. ?>


Wynik:
Kod
Tytuł maila



[kodzik]Podpis[/kodzik]


Jak widać nie usuwa prawidłowo, myśli że usuń-start jest w miejscu rozpoczęscia pierwszego [usun] a koniec w miejscu zakończenia drugiego [usun].

Czy coś można z tym zrobić? Dodam, że układ się zmienia, ilość [usun] również. Ilość linii w [usun] jest różna.
Myślałem o tym, żeby gdy pojawi się [usun] kolejne to przerwało usuwanie i cofneło do końca pierwszego. Bo nie może być [usun][usun]tresc[/usun][/usun]. Ale zupełnie nie wiem jak to powinno wyglądać.

Prawidłowy tekst powinien przedstawiac się następująco:
Kod
Tytuł maila

[kodzik]tresc wiadomosci[/kodzik]

[kodzik]Podpis[/kodzik]


Wielkie dzięki wink.gif
miki3475
Cytat(Noidea @ 16.05.2011, 23:53:28 ) *


Dzięki, podaje prawidłową funkcje:
Kod
function usun($tresc){
    $nowa_tresc = preg_replace("#\[usun](.*?)\[\/usun]#ms", "", $tresc);
    return $nowa_tresc;
}

Może ktoś będzie potrzebował wink.gif

Dzięki, pzdr.
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.