note 60031 added to function.substr

From: Date: Fri, 23 Dec 2005 12:40:22 +0000
Subject: note 60031 added to function.substr
Groups: php.notes 
Request: Send a blank email to php-notes+get-100616@lists.php.net to get a copy of this message
UTF-8 safe substr define('ENABLE_UTF8_NOMB',true); define('ENABLE_UTF8_MB',false); /** * UTF8 strlen */ function _mb_strlen($s) { if(ENABLE_UTF8_MB) { return mb_strlen($s); } if(ENABLE_UTF8_NOMB) { return strlen(utf8_decode($s)); } return strlen($s); } /** * UTF8 substr */ function _mb_substr($s,$b,$l=NULL) { /* UTF8 ready */ if(ENABLE_UTF8_MB) { return is_null($l) ? mb_substr($s,$b) : mb_substr($s,$b,$l); } /* UTF8 ready */ if(ENABLE_UTF8_NOMB) { if($b < 0 ) { $b = _mb_strlen($s) + (int) $b; } if( is_null($l) || _mb_strlen($s)<($l+$b)) { $l = '*'; } else { if($l < 0 ) $l = _mb_strlen($s) + (int) $l; $l = '{0,'.preg_quote($l).'}'; } preg_match('/^.{'.preg_quote($b).'}(.'.$l.')/us', $s, $m); return ( isset($m[1]) ) ? $m[1] : false; } return ( is_null($l) ) ? substr($s,$b) : substr($s,$b,$l); } ---- Manual Page -- http://www.php.net/manual/en/function.substr.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+60031 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60031&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+60031&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#100616) next »