Rozszerzone strip_tags()

12 listopada 2008

Ostatnio poprawiałem funkcjonalność get_meta_tags(), teraz przyszedł czas na strip_tags().

Najpierw kilka zdań o samej funkcji strip_tags() (dla tych, którzy jej nie znają chociaż każdy programista PHP znać ją powinien :P ).

Funkcja służy do łatwego, szybkiego i bezbolesnego pozbywania się tagów HTML z tekstu i przyjmuje dwa argumenty. Pierwszy to oczywiście tekst na którym ma pracować a drugi (opcjonalny) to lista tagów, które mają zostać pominięte podczas usuwania.

Przykład:

PHP:
  1. $tekst = 'To jest <b>test</b> działania <i>funkcji</i> strip_tags()';
  2. echo strip_tags($tekst);
  3. echo "\r\n";
  4. echo strip_tags($tekst, '<b>');

Powyższy kod PHP da nam taki wynik:

CODE:
  1. To jest test działania funkcji strip_tags()
  2. To jest </b><b>test</b> działania funkcji strip_tags()

Pierwsze wywołanie funkcji spowodowało usunięcie wszystkich tagów z tekstu. W drugim nakazaliśmy pominąć tagi <b> i tak też się stało.

Niestety czasami funkcja strip_tags() nie wystarcza. Oto przykład problematycznej sytuacji:

PHP:
  1. $tekst = 'Jakiś tekst
  2. <script type="text/javascript">
  3. jakiś kod JavaScript
  4. </script>
  5. dalsza część strony';
  6. echo strip_tags($tekst);

Wynik:

CODE:
  1. Jakiś tekst
  2.  
  3. jakiś kod JavaScript
  4.  
  5. dalsza część strony

Czytaj dalej »