note 104717 added to function.str-pad

From: Date: Sat, 02 Jul 2011 18:31:20 +0000
Subject: note 104717 added to function.str-pad
Groups: php.notes 
Request: Send a blank email to php-notes+get-181180@lists.php.net to get a copy of this message
The Vasu's solution doesn't work well if $pad_string contains multibyte characters. Here another way to implement it: <?php function mb_str_pad($input, $pad_length, $pad_string=' ', $pad_type=STR_PAD_RIGHT) { $diff = $pad_length - mb_strlen($input, 'UTF-8'); if ($diff <= 0) { return $input; } $pad_string = str_pad($pad_string, 1); $multiplier = ceil($diff / mb_strlen($pad_string, 'UTF-8')); $compl = mb_substr(str_repeat($pad_string, $multiplier), 0, $diff, 'UTF-8'); if ($pad_type === STR_PAD_LEFT) { return $compl.$input; } elseif ($pad_type === STR_PAD_BOTH) { return mb_substr($compl, -1, round($diff/2), 'UTF-8') .$input .mb_substr($compl, 0, ceil($diff/2), 'UTF-8'); } else { return $input.$compl; } } echo mb_str_pad('ë', 4, 'éè', STR_PAD_BOTH); // éëéè ?> ---- Server IP: 89.31.146.176 Probable Submitter: 86.74.225.85 ---- Manual Page -- http://www.php.net/manual/en/function.str-pad.php Edit -- https://master.php.net/note/edit/104717 Del: integrated -- https://master.php.net/note/delete/104717/integrated Del: useless -- https://master.php.net/note/delete/104717/useless Del: bad code -- https://master.php.net/note/delete/104717/bad+code Del: spam -- https://master.php.net/note/delete/104717/spam Del: non-english -- https://master.php.net/note/delete/104717/non-english Del: in docs -- https://master.php.net/note/delete/104717/in+docs Del: other reasons-- https://master.php.net/note/delete/104717 Reject -- https://master.php.net/note/reject/104717 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#181180) next »