PHP 5.6.0 released

ltrim

(PHP 4, PHP 5)

ltrim文字列の最初から空白 (もしくはその他の文字) を取り除く

説明

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

文字列の最初から空白 (もしくはその他の文字) を取り除きます。

パラメータ

str

入力文字列。

character_mask

character_maskパラメータにより、削除する 文字を指定することも可能です。削除したい全ての文字をリストに してください。..を文字の範囲を指定する際に 使用可能です。

返り値

この関数は文字列の最初から空白文字を取り除き、 取り除かれた文字列を返します。2番目のパラメータを指定しない場合、 ltrim()は以下の文字を削除します。

  • " " (ASCII 32 (0x20)), 通常の空白。
  • "\t" (ASCII 9 (0x09)), タブ。
  • "\n" (ASCII 10 (0x0A)), 改行。
  • "\r" (ASCII 13 (0x0D)), 復帰。
  • "\0" (ASCII 0 (0x00)), NUL バイト。
  • "\x0B" (ASCII 11 (0x0B)), 垂直タブ。

例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);

// ASCII 制御文字 (0 から 31 まで) を
// $binary の先頭から取り除きます
$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
"

参考

  • trim() - 文字列の先頭および末尾にあるホワイトスペースを取り除く
  • rtrim() - 文字列の最後から空白 (もしくはその他の文字) を取り除く

add a note add a note

User Contributed Notes 7 notes

up
4
mroeling at exed dot nl
4 months ago
@scion4581

The problem is that the character mask (_stw in your case) isn't a literal string, but a character collection. So all characters within _stw are stripped. In your case this includes the w of weight also.
up
4
dzek dot remove_this at dzek dot eu
3 years ago
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.
up
1
scion4581 at mail dot ru
5 months ago
What i found and i can't get why:

$word = 'stw_weight';
echo ltrim($word, 'stw_');

output:  eight instead weight

If anybody know plz let me know
up
1
Usamah M dot Ali (usamah1228 at gmail dot com)
6 years ago
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).
up
0
juan at ecogomera dot com
8 months ago
+=0 not valid for something like 0000-5. Result is 0
up
-1
John Sherwood
8 years ago
To remove leading/trailing zeroes (example: "0123.4560"), doing a += 0 is easier than trim tricks.
up
-1
Mike
3 years ago
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.
To Top