Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuwanie fragmentu kodu
Forum PHP.pl > Forum > PHP
broU
mam taki kod:

[c0de:1]
1
[/c0de:1]
[c0de:2]
2
[/c0de:2]
[c0de:3]
3
[/c0de:3]

i teraz powiedzmy , ze $zakres = 2; i chcialbym , aby caly kod zaczynajacy sie od [c0de:X]...[/c0de:X] (lacznie z tagami) gdzie X != $zakres zostal usuniety . w przypadku zneleziena danych pomiedzy takagim ktorych X == $zakres chcialbym , aby tylko tagi znikly. czyli zostanie mi

2

problem lezy tez tu , ze skrypt raczej nie wie ile tagow moze byc , czyli tylko 1,2,3 czy wiecej ... jesli ktos moglby napisac to prosilbym o gotowy kod , ewentualnie moge uproscic , tzn . podawac ilosc tagow ... z gory dzieki za pomoc . Probowalem sam napisac taki kod , ale brak wiedzy z zakresu wyrazen regularnych raczej mi to uniemozliwia ... gdy bede miec wiecej czasu napewno sie naucze stosowania wyrazen smile.gif
kicaj
Wlasnie przed kilkoma minutami, stworzylem podony regexp:
Kod
{@rows:wiersz} abc 123 {/@rows:wiersz}

Glownie chodzilo mi o pobieranie zawartosci `abc 123`, wszystko dziala pieknie, nawet jesli jest zageszczone jak w Twoim przypadku, ale wyrazenie sypie sie jesli w pomiedzy tymi sekcjami sa wpisy kilku liniowe. Dlaczego?
FiDO
Cytat(kicaj_ @ 2004-09-10 17:50:29)
[...]ale wyrazenie sypie sie jesli w pomiedzy tymi sekcjami sa wpisy kilku liniowe. Dlaczego?

Brakuje Ci flagi s
broU
hm ... tylko szkoda ze nie potrafie zastosowac tego co napisaliscie ... :/
kicaj
Okey, to masz:
Kod
'/(\\[c0de:)(.*?)(\\])(.*?)(\\[\\/c0de:)(\\2)(\\])/is'
broU
hm ... próbowałem to zastosować z preg_replace / match ale efekt bym mizerny ... mógłbym prosic o raczej pełny kod ? gotowy do zastosowania ...
kicaj
  1. <?php
  2. $text = &#092;"[c0de:1]jeden[/c0de:1][c0de:2]dwa[/c0de:2][c0de:3]trzy[/c0de:3]\";
  3. preg_match_all( '/([c0de:)(.*?)(])(.*?)([/c0de:)(2)(])/is', $text, $matches );
  4.  
  5. for( $i = 0; $i < count( $matches[0] ); $i++ )
  6. {
  7. echo $matches[2][$i] . &#092;"=\" . $matches[4][$i] . \"<br />\";
  8. }
  9. ?>

Powinno dzialac...
broU
ile chcesz pokłonów w ramach wdzięczności ? smile.gif
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.