Using str_pad() function
<?php str_pad( string $input, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT ): string
str_pad
function pad a string to a certain length with another string. This function accepts four parameters:
- input: The input string.
- length: No padding takes place if the length is negative, less than or equal to the input.
- pad_string: The output pad with the pattern specified by pad_string. If this parameter is not defined, the result will be padded with spaces.
- pad_type:
STR_PAD_RIGHT
pad the string on the right (the default setting)STR_PAD_LEFT
pad the string on the leftSTR_PAD_BOTH
pad the string on both the left and the right, centering the result.
The following str_pad()
basic example adds spaces to the end of the string:
<?php // prints "PHP" followed by three spaces echo str_pad("PHP", 6); //"PHP "
By setting the optional argument pad_string
, a string pattern is added at the end of the result:
<?php // prints "PHP" followed by three dots echo str_pad("PHP", 6, '.'); //Prints: PHP... echo str_pad("PHP", 15, '-.-'); //Prints: PHP-.--.--.--.-
By default, padding is added to the end of the string. By setting the optional argument pad_type
to STR_PAD_LEFT
or to STR_PAD_BOTH
, the padding is added to the beginning of the string or to both ends.
<?php echo str_pad("PHP", 15, '-=') .'<br>'; //PHP-=-=-=-=-=-= echo str_pad("PHP", 15, '-=', STR_PAD_LEFT) .'<br>'; //-=-=-=-=-=-=PHP echo str_pad("PHP", 15, '-=', STR_PAD_BOTH); //-=-=-=PHP-=-=-=
The following example shows how str_pad( )
can create a justified index (or a table of contents):
<?php echo '<pre>'; echo str_pad('Table of Contents', 50, ' ', STR_PAD_BOTH) . "\n"; echo str_pad('Topic', 30, ' '); echo str_pad('Page #', 20, ' ', STR_PAD_LEFT) . "\n"; echo str_pad('Heading 1', 30, '.'); echo str_pad('1', 20, '.', STR_PAD_LEFT) . "\n"; echo str_pad('Heading 2', 30, '.'); echo str_pad('5', 20, '.', STR_PAD_LEFT) . "\n"; echo str_pad('Heading 3', 30, '.'); echo str_pad('11', 20, '.', STR_PAD_LEFT) . "\n"; echo str_pad('Last Heading', 30, '.'); echo str_pad('102', 20, '.', STR_PAD_LEFT) . "\n"; echo '</pre>';
The example prints:
Table of Contents Topic Page # Heading 1........................................1 Heading 2........................................5 Heading 3.......................................11 Last Heading...................................102
String padding using printf()
You can use the formatted string functions to pad the output by leading characters. In the following example, we use printf() function to pad the output with spaces and dots:
<?php echo '<pre>'; printf('% 35s', "Table of Contents\n"); printf("%-'.30s%'.20s", 'Topic', "Page #\n"); printf("%-'.30s%'.20s", 'Heading 1', "1\n"); printf("%-'.30s%'.20s", 'Heading 2', "5\n"); printf("%-'.30s%'.20s", 'Heading 3', "11\n"); printf("%-'.30s%'.20s", 'Last Heading', "101\n"); echo '</pre>';
The example prints:
Table of Contents Topic......................................Page # Heading 1.......................................1 Heading 2.......................................5 Heading 3......................................11 Last Heading..................................101
Working with Strings: