note 71558 deleted from function.str-pad by googleguy

From: Date: Tue, 22 Oct 2013 14:59:50 +0000
Subject: note 71558 deleted from function.str-pad by googleguy
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-197284@lists.php.net to get a copy of this message
Note Submitter: Charles ---- More corrections to the original flap / Tomek Krzeminski code below (well someone has to check it!) -- the code is a bit mangled but it is still the same: <?php function mb_str_pad($ps_input, $pn_pad_length, $ps_pad_string = " ", $pn_pad_type = STR_PAD_RIGHT, $ps_encoding = NULL) { $ret = ""; if (is_null($ps_encoding)) $ps_encoding = mb_internal_encoding(); $hn_length_of_padding = $pn_pad_length - mb_strlen($ps_input, $ps_encoding); $hn_psLength = mb_strlen($ps_pad_string, $ps_encoding); // pad string length if ($hn_psLength <= 0 || $hn_length_of_padding <= 0) { // Padding string equal to 0: // $ret = $ps_input; } else { $hn_repeatCount = floor($hn_length_of_padding / $hn_psLength); // how many times repeat if ($pn_pad_type == STR_PAD_BOTH) { $hs_lastStrLeft = ""; $hs_lastStrRight = ""; $hn_repeatCountLeft = $hn_repeatCountRight = ($hn_repeatCount - $hn_repeatCount % 2) / 2; $hs_lastStrLength = $hn_length_of_padding - 2 * $hn_repeatCountLeft * $hn_psLength; // the rest length to pad $hs_lastStrLeftLength = $hs_lastStrRightLength = floor($hs_lastStrLength / 2); // the rest length divide to 2 parts $hs_lastStrRightLength += $hs_lastStrLength % 2; // the last char add to right side $hs_lastStrLeft = mb_substr($ps_pad_string, 0, $hs_lastStrLeftLength, $ps_encoding); $hs_lastStrRight = mb_substr($ps_pad_string, 0, $hs_lastStrRightLength, $ps_encoding); $ret = str_repeat($ps_pad_string, $hn_repeatCountLeft) . $hs_lastStrLeft; $ret .= $ps_input; $ret .= str_repeat($ps_pad_string, $hn_repeatCountRight) . $hs_lastStrRight; } else { $hs_lastStr = mb_substr($ps_pad_string, 0, $hn_length_of_padding % $hn_psLength, $ps_encoding); // last part of pad string if ($pn_pad_type == STR_PAD_LEFT) $ret = str_repeat($ps_pad_string, $hn_repeatCount) . $hs_lastStr . $ps_input; else $ret = $ps_input . str_repeat($ps_pad_string, $hn_repeatCount) . $hs_lastStr; } } return $ret; } ?>

« previous php.notes (#197284) next »