字符串函数
在线手册:中文 英文
PHP手册

ltrim

(PHP 4, PHP 5)

ltrimStrip whitespace (or other characters) from the beginning of a string

说明

string ltrim ( string $str [, string $charlist ] )

Strip whitespace (or other characters) from the beginning of a string.

参数

str

The input string.

charlist

You can also specify the characters you want to strip, by means of the charlist parameter. Simply list all characters that you want to be stripped. With .. you can specify a range of characters.

返回值

This function returns a string with whitespace stripped from the beginning of str. Without the second parameter, ltrim() will strip these characters:

更新日志

版本 说明
4.1.0 The charlist parameter was added.

范例

Example #1 Usage example of ltrim()

<?php

$text 
"\t\tThese are a few words :) ...  ";
$binary "\x09Example string\x0A";
$hello  "Hello World";
var_dump($text$binary$hello);

print 
"\n";


$trimmed ltrim($text);
var_dump($trimmed);

$trimmed ltrim($text" \t.");
var_dump($trimmed);

$trimmed ltrim($hello"Hdle");
var_dump($trimmed);

// trim the ASCII control characters at the beginning of $binary
// (from 0 to 31 inclusive)
$clean ltrim($binary"\x00..\x1F");
var_dump($clean);

?>

以上例程会输出:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

参见


字符串函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Strip whitespace (or other characters) from the beginning of a string

用户评论:

dzek dot remove_this at dzek dot eu (25-Jul-2011 09:27)

Guys, if += 0 is producing wrong values sometimes, and preg_replace is cpu consuming, then just stick to the main function described on that page, and use:
<?php
$value
= ltrim($value, '0');
?>
should be the fastest and most reliable.
I think all those comments can be misleading for begginers checking this page - it's sort of using magic tricks to reinvent the wheel.

Mike (08-Jan-2011 08:03)

Keep in mind the amount of resources preg_replace() uses. 
I would suggest a simple if statement if you need to parse through large amounts of data. 
<?php
function remove_leading_zeros_from_number($number_string) {
 
$limit = 9000.1
  $temp
= $number
 
(float) $temp;
  if (
$number < $limit) {
   
$number += 0;
  } else {
   
preg_replace('~^[0]*([1-9][0-9]*)$~','$1',$number_string)
  }
}
?>

Code is untested, but probably sound.

tanmar.de (06-May-2010 06:36)

The neat trick from Mr. Sherwood has only one ugly side-effect: If the "number" contained in the string is considerably large, you will end up with an int (or float) value that has nothing to do with the original number ...

You may use preg_replace instead:

$number_string = preg_replace('~^[0]*([1-9][0-9]*)$~','$1',$number_string);

This kills any leading zeros safely without changing any other data.

Hope this helps.

Usamah M dot Ali (usamah1228 at gmail dot com) (04-Feb-2008 10:42)

For those who use right-to-left languages such as Arabic, Hebrew, etc., it's worth mentioning that ltrim() (which stands for left trim) & rtrim() (which stands for right trim) DO NOT work contextually. The nomenclature is rather semantically incorrect. So in an RTL script, ltrim() will trim text from the right direction (i.e. beginning of RTL strings), and rtrim() will trim text from the left direction (i.e. end of RTL strings).

John Sherwood (06-Aug-2006 08:13)

To remove leading/trailing zeroes (example: "0123.4560"), doing a += 0 is easier than trim tricks.