Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> usuwanie fragmentu kodu, czyli wyrażenia regularne
broU
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


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
Go to the top of the page
+Quote Post
kicaj
post
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


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?


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


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


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
broU
post
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


hm ... tylko szkoda ze nie potrafie zastosowac tego co napisaliscie ... :/
Go to the top of the page
+Quote Post
kicaj
post
Post #5





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Okey, to masz:
Kod
'/(\\[c0de:)(.*?)(\\])(.*?)(\\[\\/c0de:)(\\2)(\\])/is'


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
broU
post
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


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 ...
Go to the top of the page
+Quote Post
kicaj
post
Post #7





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


  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...

Ten post edytował kicaj_ 11.09.2004, 11:59:11


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
broU
post
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 3.07.2004

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


ile chcesz pokłonów w ramach wdzięczności ? smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:35