note 27364 modified in function.str-pad by aidan

From: Date: Sat, 26 Jun 2004 03:25:29 +0000
Subject: note 27364 modified in function.str-pad by aidan
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-71716@lists.php.net to get a copy of this message
In a lot of cases you're better off using str_repeat if you want to use something like - it repeats the entire string. Using str_repeat, I wrote a full string pad function that should closely mimic str_pad in every other way: <?php function full_str_pad($input, $pad_length, $pad_string = '', $pad_type = 0) { $str = ''; $length = $pad_length - strlen($input); if ($length > 0) { // str_repeat doesn't like negatives if ($pad_type == STR_PAD_RIGHT) { // STR_PAD_RIGHT == 1 $str = $input.str_repeat($pad_string, $length); } elseif ($pad_type == STR_PAD_BOTH) { // STR_PAD_BOTH == 2 $str = str_repeat($pad_string, floor($length/2)); $str .= $input; $str .= str_repeat($pad_string, ceil($length/2)); } else { // defaults to STR_PAD_LEFT == 0 $str = str_repeat($pad_string, $length).$input; } } else { // if $length is negative or zero we don't need to do anything $str = $input; } return $str; } $pad_me = "Test String"; echo '|'.full_str_pad($pad_me, 20, ' ')."|\n"; echo '|'.full_str_pad($pad_me, 20, ' ', STR_PAD_RIGHT)."|\n"; echo '|'.full_str_pad($pad_me, 20, ' ', STR_PAD_BOTH)."|\n"; ?> --was-- In a lot of cases you're better off using str_repeat if you want to use something like &nbsp; - it repeats the entire string. Using str_repeat, I wrote a full string pad function that should closely mimic str_pad in every other way: function full_str_pad($input, $pad_length, $pad_string = '', $pad_type = 0) { $str = ''; $length = $pad_length - strlen($input); if ($length > 0) { // str_repeat doesn't like negatives if ($pad_type == STR_PAD_RIGHT) { // STR_PAD_RIGHT == 1 $str = $input.str_repeat($pad_string, $length); } elseif ($pad_type == STR_PAD_BOTH) { // STR_PAD_BOTH == 2 $str = str_repeat($pad_string, floor($length/2)); $str .= $input; $str .= str_repeat($pad_string, ceil($length/2)); } else { // defaults to STR_PAD_LEFT == 0 $str = str_repeat($pad_string, $length).$input; } } else { // if $length is negative or zero we don't need to do anything $str = $input; } return $str; } $pad_me = "Test String"; echo '|'.full_str_pad($pad_me, 20, '&nbsp;')."|\n"; echo '|'.full_str_pad($pad_me, 20, '&nbsp;', STR_PAD_RIGHT)."|\n"; echo '|'.full_str_pad($pad_me, 20, '&nbsp;', STR_PAD_BOTH)."|\n"; http://php.net/manual/en/function.str-pad.php

« previous php.notes (#71716) next »