Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [regExpr] Niby wszystko dobrze...
Spirit86
post 5.04.2006, 13:06:48
Post #1





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Witam.

Napisałem wyrażenie, które ma na celu skasowanie wszystkiego co zawiera się między <!--ShowHide--> oraz <!--EndShowHide-->:

  1. <?php
  2.   $ret = preg_replace( "#<!--ShowHide-->(.+?)<!--EndShowHide-->#", "" , $ret);
  3. ?>


Niestety nie działa one na np. takim stringu:

Kod
<!--ShowHide--><a href="#" OnClick="ShowHide('tt5o'); return false;"><img src="Templates/CSS/images/hide.gif" border="0" />asdasd </a>
 <table cellpadding="0" cellspacing="0" id="tt5o" style="display: none; " ><tr><td width="10"></td><td>asdasd</td></tr></table><!--EndShowHide-->


Ech, czy ktoś może mi powiedzieć, jaki błąd popełniłem?


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
bendi
post 5.04.2006, 13:44:37
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Ta, dodałeś znaki nowej linii a kropka domyślnie kończy działanie właśnie na nich, trzeba dodać modyfikator \s, wszystko opisałem już dawno temu http://bedkowski.pl/php_regex/1/ i dalsze


--------------------
Go to the top of the page
+Quote Post
Spirit86
post 5.04.2006, 19:27:50
Post #3





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


ech, próbowałem czegoś takiego już też:

  1. <?php
  2. $ret = preg_replace( "#<!--ShowHide-->(/(.*?)/s)<!--EndShowHide-->#", "" , $ret);
  3. ?>


zły kod wkleiłem. Ale to też nie działa.

nigdy chyba nie opanuje tych regExpr. czytałem już kilka tutoriali i zawsze się coś chrzani.


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
bendi
post 6.04.2006, 08:45:34
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(Spirit86 @ 2006-04-05 20:27:50)
zły kod wkleiłem. Ale to też nie działa.

Bo ten wcale nie jest lepszy tongue.gif

Wyrażenie regularne to cały string, natomiast ty próbójesz je gdzieś w środku zastosować i dlatego to nie działa, tak powinno być lepiej.
  1. <?php
  2. $ret = preg_replace( "#<!--ShowHide-->(.*?)<!--EndShowHide-->#s", "" , $ret);
  3. ?>


--------------------
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 16:22