Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Preg_replace i wyrazenie usuwajace dany tekst na koncu wiersza.
Forum PHP.pl > Forum > Przedszkole
lepmajster
Witam.
Od wczoraj mecze sie z ulozeniem wyrazenia dla preg_replace(), ktore usunie mi wszystkie wystapienia "<br />" z konca zdania.
Probowalem tak:
Kod
#$<br />#si
#$<br />#sim
#$<br />#m
#$<br />#

ale nie dziala, nie usuwa mi <br /> na koncu zdania.
Prosze o pomoc.

Dodam, ze takie cos dziala:
Kod
#^<br />#si

ale dla <br /> na poczatku zdania, wiec czemu $ nie dziala na koncu?
tomm
Spróbuj tak:

  1. '%<br />$%m'
lepmajster
Dziala - DZIEKI WIELKIE exclamation.gif!

Ps. A jak zrobic, aby kilka <br /> z konca usuwalo.
Powiedzmy ze mam taki tekst:
Kod
Ala ma kota<br /><br /><br />

to usunie mi tylko jedno <br />.
tomm
A tak nie możesz?

  1. $a = "<br />ala ma kota<br />";
  2.  
  3. echo trim($a, '<br />');


to usunie wielokrotne <br />
lepmajster
Cytat(tomm @ 30.11.2010, 22:41:48 ) *
A tak nie możesz?

  1. $a = "<br />ala ma kota<br />";
  2.  
  3. echo trim($a, '<br />');


to usunie wielokrotne <br />

No ale to mi usunie wszystkie <br /> w tekscie, a ja dopuszczam uzywania <br />, tylko chce aby na koncu zdania nie bylo niepotrzebnego lamania linii.

EDIT:
Zrobilem, nie wiem czy dobrze, ale dziala:
Kod
#(<br />)+$#m

Usuwa wielokrotne znaki <br /> z konca linii.
tomm
no to tak

  1. '%(<br />)+$%m'
lepmajster
Wlasnie tak pomyslalem - zapomnialem zupelnie o tych "modyfikatorach"? +/*/?/{n,m} winksmiley.jpg

Zrobilem komplet funkcji, potrzebnych mi do opisanych nizej celow, prosze o skomentowanie, czy dobrze to zrobilem, poniewaz nie chce wstawiac czegos na strone, czego nie jestem w 100% pewien. Nie chce niespodzianek - niby testowalem na localhost i bylo OK, ale ktos, kto sie na tym zna, moze wylapie cos, o czym ja nie pomyslalem?

1. Chce usunac podwojne (lub wiecej) powtorzenia <br /> w jakims dluzszym tekscie (nie chce przerw miedzy wierszami), nawet gdy jest/sa spacja/spacje pomiedzy nimi i zastapic to jednym <br />.

2. Chce usuwac kazde wystapienie <br /> na koncy tekstu (nie zdania, tylko calego tekstu), nawet gdy jest/sa spacja/spacje pomiedzy nimi. (po co mi lamanie tekstu na koncu tekstu winksmiley.jpg )

No i tutaj kod:
  1. // Przyklad do ptk. 1
  2. echo preg_replace("#(<br \/>[\s]*){2,}#si", "<br />", $jakis_tekst);
  3.  
  4. // Przyklad do ptk. 2
  5. echo preg_replace("#(<br \/>[\s]*)+$#si", "", $jakis_tekst);

Prosze o wypowiedz nt. tych wyrazen, czy sa one dobre, do opisanych celow, czy moga powodowac jakies (nie przewidziane przeze mnie) komplikacje?
A moze da sie to zrobic lepiej?
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.