Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyrażenia regularne
damians
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 27.12.2003
Skąd: z łodzi

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


Witam

Słaby jestem w wyrażeniach regularnych i potrzebuje pomocy. Mianowicie chce aby z tekstu wywalił mi wszystkie znaczniki HTML javy itp ALE chce żeby zostawił same <br />. mam taki skrypt z php.net:
  1. <?php
  2. function html2txt($document){
  3. $search = array('@<script[^>]*?'.'>.*?</script>@si', // Strip out javascript
  4. '@<style[^>]*?'.'>.*?</style>@siU', // Strip style tags properly
  5. '@<[/!]*?[^<>]*?'.'>@si', // Strip out HTML tags
  6. '@<![sS]*?--[ \t\nr]*>@' // Strip multi-line comments including CDATA
  7. );
  8. $text = preg_replace($search, '', $document);
  9. return $text;
  10. }
  11. ?>


Ale ten usuwa wszystko chce aby zostawił tylko "<br />"

Ten post edytował damians 5.08.2008, 17:51:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
ucho
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


http://www.php.net/strip-tags - nie odkrywaj koła na nowo smile.gif
Go to the top of the page
+Quote Post
damians
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 27.12.2003
Skąd: z łodzi

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


ehhh ale stip_tags usuwami mi także zawartość miedzy np: <b> <div> itd ... Właśnie tam znalazłem tą funkcję.
Go to the top of the page
+Quote Post
SirZooro
post
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 32
Dołączył: 14.06.2007

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


Do strip_tags() możesz jako drugi parametr podać listę znaczników które mają pozostać - przykład masz w manualu do PHP.


--------------------
Go to the top of the page
+Quote Post
damians
post
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 27.12.2003
Skąd: z łodzi

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


Ehhhh ja wiem o tym. Dobra poradziłem sobie w inny sposób. a strip_tags mi nie pomaga
Go to the top of the page
+Quote Post
rybik
post
Post #6





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


zamiast metody rakiety i antyrakiety smile.gif (dopisywania co jeszcze trzeba stripować a czego nie) spróbuj zrobic tak pobierz to co ma zostać lub wszystko inne i zamień na to co ma zostać lub nic

pattern:
Cytat
<.+?>

znajdzie nam wszystkie tagi (metoda leniwej kropki wg. http://www.grabun.com/wyrazenia-regularne/zachlannosc/)

pattern:
Cytat
<br\s?/?>

dopasuje: <br[spacja][slash]> (wyrażenia w nawiasach nie muszą wystąpić gwarantuje to pytajnik)

teraz chcemy żeby najpierw szukał brejków a potem innych tagów i mamy:
Cytat
(<br\s?/?>|<.+?>)


na koniec chcemy zebrać brejki do zmiennej, żeby ... zastąpić je nimi samymi smile.gif więc pojawi się dodatkowy nawias

końcowy skrypt podmiany
  1. <?php
  2. $pattern= '((<brs?/?>)|<.+?>)';
  3. $str = preg_replace($pattern, '1', $str);


ta metoda możemy wyciąć wszystkie tagi poza wybranymi ... tak, można to poszerzyć ale to już dłuższa pogadanka
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: 21.08.2025 - 14:49