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, and input will be returned.

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.

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;.