note 52893 modified in function.substr by bobby

From: Date: Thu, 14 Sep 2006 17:12:43 +0000
Subject: note 52893 modified in function.substr by bobby
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-117166@lists.php.net to get a copy of this message
Hmm ... this is a script I wrote, whitch is very similar to substr, but it isn't takes html and bbcode for counting and it takes portion of string and show avoided (html & bbcode) tags too ;] Specially usefull for show part of serach result included html and bbcode tags <?php /** * string csubstr ( string string, int start [, int length] ) * * @author FanFataL * @param string string * @param int start * @param [int length] * @return string */ function csubstr($string, $start, $length=false) { $pattern = '/(\[\w+[^\]]*?\]|\[\/\w+\]|<\w+[^>]*?>|<\/\w+>)/i'; $clean = preg_replace($pattern, chr(1), $string); if(!$length) $str = substr($clean, $start); else { $str = substr($clean, $start, $length); $str = substr($clean, $start, $length + substr_count($str, chr(1))); } $pattern = str_replace(chr(1),'(.*?)',preg_quote($str)); if(preg_match('/'.$pattern.'/is', $string, $matched)) return $matched[0]; return $string; } ?> Using this is similar to simple substr. Greatings ;] ... --was-- Hmm ... this is a script I wrote, whitch is very similar to substr, but it isn't takes html and bbcode for counting and it takes portion of string and show avoided (html & bbcode) tags too ;] Specially usefull for show part of serach result included html and bbcode tags <?php /** * string csubstr ( string string, int start [, int length] ) * * @author FanFataL * @param string string * @param int start * @param [int length] * @return string */ function csubstr($string, $start, $length=false) { $pattern = '/(\[\w+[^\]]*?\]|\[\/\w+\]|<\w+[^>]*?>|<\/\w+>)/i'; $clean = preg_replace($pattern, chr(1), $string); if(!$length) $str = substr($clean, $start); else { $str = substr($clean, $start, $length); $str = substr($clean, $start, $length + substr_count($str, chr(1))); } $pattern = str_replace(chr(1),'(.*?)',preg_quote($clean)); if(preg_match('/'.$pattern.'/is', $string, $matched)) return $matched[0]; return $string; } ?> Using this is similar to simple substr. Greatings ;] ... http://php.net/manual/en/function.substr.php

« previous php.notes (#117166) next »