note 107390 modified in function.strip-tags by danbrown

From: Date: Thu, 10 May 2012 21:19:29 +0000
Subject: note 107390 modified in function.strip-tags by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-187875@lists.php.net to get a copy of this message
Here is a far better function for the atypical process of stripping tags:&#13;&#10;&#13;&#10;&#60;?php&#13;&#10;function strip_html_tags( $text )&#13;&#10;{&#13;&#10; $text = preg_replace(&#13;&#10; array(&#13;&#10; // Remove invisible content&#13;&#10; &#39;@&#60;head[^&#62;]*?&#62;.*?&#60;/head&#62;@siu&#39;,&#13;&#10; &#39;@&#60;style[^&#62;]*?&#62;.*?&#60;/style&#62;@siu&#39;,&#13;&#10; &#39;@&#60;script[^&#62;]*?.*?&#60;/script&#62;@siu&#39;,&#13;&#10; &#39;@&#60;object[^&#62;]*?.*?&#60;/object&#62;@siu&#39;,&#13;&#10; &#39;@&#60;embed[^&#62;]*?.*?&#60;/embed&#62;@siu&#39;,&#13;&#10; &#39;@&#60;applet[^&#62;]*?.*?&#60;/applet&#62;@siu&#39;,&#13;&#10; &#39;@&#60;noframes[^&#62;]*?.*?&#60;/noframes&#62;@siu&#39;,&#13;&#10; &#39;@&#60;noscript[^&#62;]*?.*?&#60;/noscript&#62;@siu&#39;,&#13;&#10; &#39;@&#60;noembed[^&#62;]*?.*?&#60;/noembed&#62;@siu&#39;,&#13;&#10; // Add line breaks before and after blocks&#13;&#10; &#39;@&#60;/?((address)|(blockquote)|(center)|(del))@iu&#39;,&#13;&#10; &#39;@&#60;/?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu&#39;,&#13;&#10; &#39;@&#60;/?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu&#39;,&#13;&#10; &#39;@&#60;/?((table)|(th)|(td)|(caption))@iu&#39;,&#13;&#10; &#39;@&#60;/?((form)|(button)|(fieldset)|(legend)|(input))@iu&#39;,&#13;&#10; &#39;@&#60;/?((label)|(select)|(optgroup)|(option)|(textarea))@iu&#39;,&#13;&#10; &#39;@&#60;/?((frameset)|(frame)|(iframe))@iu&#39;,&#13;&#10; ),&#13;&#10; array(&#13;&#10; &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;, &#39; &#39;,&#34;$0&#34;, &#34;$0&#34;, &#34;$0&#34;, &#34;$0&#34;, &#34;$0&#34;, &#34;$0&#34;,&#34;$0&#34;, &#34;$0&#34;,), $text );&#13;&#10; &#13;&#10; return strip_html_tags( $text , &#39;&#60;b&#62;&#60;a&#62;&#39; );&#13;&#10;}&#13;&#10;?&#62; --was-- Here is a far better function for the atypical process of stripping tags: function strip_html_tags( $text ) { $text = preg_replace( array( // Remove invisible content '@<head[^>]*?>.*?</head>@siu', '@<style[^>]*?>.*?</style>@siu', '@<script[^>]*?.*?</script>@siu', '@<object[^>]*?.*?</object>@siu', '@<embed[^>]*?.*?</embed>@siu', '@<applet[^>]*?.*?</applet>@siu', '@<noframes[^>]*?.*?</noframes>@siu', '@<noscript[^>]*?.*?</noscript>@siu', '@<noembed[^>]*?.*?</noembed>@siu', // Add line breaks before and after blocks '@</?((address)|(blockquote)|(center)|(del))@iu', '@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu', '@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu', '@</?((table)|(th)|(td)|(caption))@iu', '@</?((form)|(button)|(fieldset)|(legend)|(input))@iu', '@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu', '@</?((frameset)|(frame)|(iframe))@iu', ), array( ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',"$0", "$0", "$0", "$0", "$0", "$0","$0", "$0",), $text ); return strip_html_tags( $text , '<b><a>' ); } http://php.net/manual/en/function.strip-tags.php

« previous php.notes (#187875) next »