If I do:
ltrim('53-34567', '53-');
ltrim('53+34567', '53+');
ltrim('53*34567', '53*');
I get 4567
as the result and not 34567
. What's the explanation for this behavior?
If I do:
ltrim('53-34567', '53-');
ltrim('53+34567', '53+');
ltrim('53*34567', '53*');
I get 4567
as the result and not 34567
. What's the explanation for this behavior?
ltrim('53-34567', '53-');
There is a 5
at the begining of '53-34567'
so it is removed.
There is a 3
at the begining of '3-34567'
so it is removed.
There is a -
at the begining of '-34567'
so it is removed.
There is a 3
at the begining of '34567'
so it is removed.
There is nothing in '53-'
at the begining of '4567'
so it stopped.
This is the same behaviour than a trim()
by removing unwanted trailing characters. In example, trim(" lots of spaces ");
will return "lots of spaces"
by removing trailing and leading spaces but will keep the inner ones.
The second argument of ltrim()
is as follows
character_mask
You can also specify the characters you want to strip, by means of the character_mask parameter. Simply list all characters that you want to be stripped.
It's used to specify which characters to trim, yours include 3
. If you know what you want to extract, you can use other string functions.
As to why the other 5
is then not removed, see this comment: http://php.net/manual/en/function.ltrim.php#118221
This is because ltrim
trims characters from a second param.
How it works: