thisisready
thisisready

Reputation: 633

Trim any zeros at the beginning of a string using PHP

Users will be filling a field in with numbers relating to their account. Unfortunately, some users will have zeroes prefixed to the beginning of the number to make up a six digit number (e.g. 000123, 001234) and others won't (e.g. 123, 1234). I want to 'trim' the numbers from users that have been prefixed with zeros in front so if a user enters 000123, it will remove the zeroes to become 123.

I've had a look at trim and substr but I don't believe these will do the job?

Upvotes: 15

Views: 20594

Answers (6)

Philip McAsey
Philip McAsey

Reputation: 11

Just multiply your number by zero.

$input=$input*1;
//000000123*1 = 123

Upvotes: -3

Tokk
Tokk

Reputation: 4502

ltrim($usernumber, "0");

should do the job, according to the PHP Manual

Upvotes: 2

Dagg Nabbit
Dagg Nabbit

Reputation: 76736

You can drop the leading zeros by converting from a string to a number and back again. For example:

$str = '000006767';
echo ''.+$str; // echo "6767"

Upvotes: 0

Brad
Brad

Reputation: 163301

You can always force PHP to parse this as an int. If you need to, you can convert it back to a string later

(int) "000123"

Upvotes: 1

Felix Kling
Felix Kling

Reputation: 816334

You can use ltrim() and pass the characters that should be removed as second parameter:

$input = ltrim($input, '0');
// 000123 -> 123

ltrim only removes the specified characters (default white space) from the beginning (left side) of the string.

Upvotes: 38

Hammerite
Hammerite

Reputation: 22340

$number = "004561";
$number = intval($number, 10);
$number = (string)$number; // if you want it to again be a string

Upvotes: 1

Related Questions