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

ltrim

(PHP 4, PHP 5)

ltrim删除字符串开头的空白字符(或其他字符)

说明

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

删除字符串开头的空白字符(或其他字符)

参数

str

输入的字符串。

charlist

通过参数charlist,你也可以指定想要删除的字符,简单地列出你想要删除的所有字符即可。使用..,可以指定字符的范围。

返回值

该函数返回一个删除了 str 最左边的空白字符的字符串。 如果不使用第二个参数, ltrim() 仅删除以下字符:

更新日志

版本 说明
4.1.0 新增 charlist 参数

范例

Example #1 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);

// 删除 $binary 开头的 ASCII 控制字符
// (从 0 到 31,包括 0 和 31)
$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
"

参见


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

用户评论:

pLIMP (2012-07-20 19:51:13)

Function similar to ltrim only it will remove everything from the start of the string to the last occurence of anything in the  $charlist

<?php

function lstrip($string$charlist) {
    
// removes everything from start of string to last occurence of char in charlist

    
$charlist str_split($charlist);

    foreach (
$charlist as $char) {
        
$pos max(strrpos($string$char), $pos);
    }

    
$string_stripped substr($string$pos 1);

    return 
$string_stripped;

}

?>

dzek dot remove_this at dzek dot eu (2011-07-25 01:27:23)

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 (2011-01-08 12:03:33)

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 (2010-05-06 10:36:20)

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) (2008-02-04 14:42:31)

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 (2006-08-06 12:13:48)

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

易百教程