Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenia regularne
Forum PHP.pl > Forum > Przedszkole
damians
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 />"
ucho
http://www.php.net/strip-tags - nie odkrywaj koła na nowo smile.gif
damians
ehhh ale stip_tags usuwami mi także zawartość miedzy np: <b> <div> itd ... Właśnie tam znalazłem tą funkcję.
SirZooro
Do strip_tags() możesz jako drugi parametr podać listę znaczników które mają pozostać - przykład masz w manualu do PHP.
damians
Ehhhh ja wiem o tym. Dobra poradziłem sobie w inny sposób. a strip_tags mi nie pomaga
rybik
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
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.