views:

76

answers:

5

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?

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

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.

Felix Kling
+1  A: 
ltrim($usernumber, "0");

should do the job, according to the PHP Manual

Tokk
But it will transform `1230` to `123`.
Felix Kling
`trim` will remove zeroes from the *end* of the string as well as the beginning. `ltrim` should be used instead.
Richard Fearn
Yes, Felix is right, if you're going this route you need to use `ltrim`.
Hammerite
A: 

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"
Brad
A: 

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"
no