Description

This functions returns the input string
padded on the left, the right, or both sides to the specified
padding length. If the optional argument
pad_string is not supplied, the
input is padded with spaces, otherwise it
is padded with characters from pad_string
up to the limit.

Parameters

input

The input string.

pad_length

If the value of pad_length is negative,
less than, or equal to the length of the input string, no padding
takes place.

pad_string

Note:

The pad_string may be truncated if the
required number of padding characters can't be evenly divided by the
pad_string's length.

pad_type

Optional argument pad_type can be
STR_PAD_RIGHT, STR_PAD_LEFT,
or STR_PAD_BOTH. If
pad_type is not specified it is assumed to be
STR_PAD_RIGHT.

Basically, *all* of you guys have a 'long' way of padding text with html tags (which includes &nbsp;) You dont even have to do a str_replace... try the following code and this will work with ANY html tag there is out there and you don't have to worry about tag character lengths so on and so forth:<? $text = "This is pretty interesting!";$pad_string = "&nbsp;";

Here's a quick and simple way to make an mb_str_pad function that works when you have correctly set your internal encoding.

I'm not sure how well this works in all possible scenarios but atleast it worked for me using UTF-8 as internal encoding and using this function on strings containing scandinavian characters "åäöÅÄÖ" that are double byte in UTF-8.

if the length of the pad is less than or equal to the string, the original string will be returned<?phpecho(str_pad("abcd", 2, "-", STR_PAD_LEFT)."<br>"); echo(str_pad("abcd", 4, "-", STR_PAD_LEFT)."<br>"); echo(str_pad("abcd", 6, "-", STR_PAD_LEFT)."<br>");

matthew.somerville's code did NOT work for me.neither did bert@catsburg.com's.neither did any other documentation.(if I isolated the code by itself, they all worked; but in the context I was using it, $value was numeric, and there is NO WAY to force it to be a string in PHP).

I had to roll my own. I used 'trim' to _force_the value of $value to be string, because aslong as PHP thought it was numeric, I couldnot use any form of left-padding with zeros.

This worked (I use sprintf to left-pad$value with zeros to a length of 4):

STR_PAD_RIGHT, STR_PAD_LEFT and STR_PAD_BOTHmust be used in UPPER CASE.

I've added this because the documentation at the top of the page doesn't make it explicit, and a few of my students have scratched their heads for half-an-hour or more because they couldn't figure it out.

STR_PAD_RIGHT, STR_PAD_LEFT and STR_PAD_BOTHmust be used in UPPER CASE.

I've added this because the documentation at the top of the page doesn't make it explicit, and a few of my students have scratched their heads for half-an-hour or more because they couldn't figure it out.

When provided with a string of characters as the pad value, str_pad uses all the characters as fill, and can leave partial strings. (eg. If the pad value is 'ABC' and it needs 5 characters to pad with, it outputs 'ABCAB'.) This is a problem when you want to pad with non-breaking spaces, the code for which is 6 characters long.

This can be resolved by first padding the string with a single character that won't be found in the strings such as * then doing a str_replace of * with &nbsp;.