Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [regexp] - replace z pomijaniem fragmentow
Forum PHP.pl > Forum > PHP
Yoop
Witam

mam taki tekst mniej wiecej:
"dowolny tekst (z koncami linii) [noWrap] tutaj ma byc tekst bez zawijania[/noWrap]
coss dalej i znowu [noWrap] tutaj ma byc jakis inny tekst bez zawijania[/noWrap] i znowu cos dalej"

no i chce zamienic w calym tekscie powyzej znaki konca lini na <br>, z wyjatkiem tych fragmentow, ktore znajduja sie w bloku [noWrap][/noWrap]

Moge to zrobic w trzech krokach: podminic skrypty na jakies oznaczenia, pozamieniac konce lini i z powrotem wstawic skrypty w miejsce oznaczen. Wolalbym jednak zrobic to za jednym zamachem, stad pytanie: czy da sie to jakos zalatwić jednym wyrazeniem ?

pozdrawiam
bendi
A moze tak:
- najpierw zamienic wszystkie znaki nowej linii na <br />
- pozniej usunac te znaczniki spomiedzy [noWrap] [/noWrap]

  1. <?
  2. $sString = preg_replace( '%[noWrap](.*?)[/noWrap]%sie', 'str_replace(\"<br />\"\"n\"\"$1\")', nl2br( $sString ) ); ?>


Jezeli chcesz zeby same znaczni noWrap pozostaly w tekscie wpisz zamiast $1, $0 i bedzie ok.
Yoop
Cytat
A moze tak:
- najpierw zamienic wszystkie znaki nowej linii na <br />
- pozniej usunac te znaczniki spomiedzy [noWrap] [/noWrap]


no tak, zapomnialem powiedziec
w calym tekscie, (takze w tej czesci [noWrap]) mogą wystepowac tagi html, i one musza pozostać bez zmian, wiec jeżeli wewnatrz [noWrap] bedzie <br> to ono musi zostac.
Idea jest nastepujaca
chce miec mozliwosc wpisania tekstu razem ze znacznikami html'a i znaki konca linii maja byc zamieninione na <br> chyba, ze fragment tekstu jest skryptem, czyli znajduje sie np. pomiedzy <?php i ?> lub pomiedzy <script></script> czy tez innymi jakie sobie zaloze, w takim tekscie tez oczywiscie moze sie pojawic <br> jako output skryptu, i ono musi tam zostac, ale konce linii w samym skrypcie nie moga byc zamienione na <br>

jakis pomysl?

pozdrawiam
bendi
Skoro wstawiasz te br'ki recznie to proponuje dodac jedna spacje czyli
<br /> i wtedy te zostna pominiete przy zamianie.
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.