(PHP 4, PHP 5)
ltrim — Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings
Entfernt Leerraum (oder andere Zeichen) vom Anfang eines Strings.
Die Eingabezeichenkette.
Sie können mittels des charlist-Parameters eigene Zeichen angeben, die Sie entfernen lassen möchten. Führen Sie einfach alle zu löschenden Zeichen auf. Mittels .. können Sie einen Bereich von Zeichen benennen.
Diese Funktion gibt den String str zurück, von dessen Anfang alle Whitespaces entfernt wurden. Ohne den zweiten Parameter entfernt ltrim() diese Zeichen:
Version | Beschreibung |
---|---|
4.1.0 | Der Parameter charlist wurde hinzugefügt. |
Beispiel #1 Beispiel zur Verwendung von 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);
// entfernt die ASCII Steuerzeichen vom Beginn von $binary
// (von 0 bis einschließlich 31)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
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 "
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.
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.
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).
To remove leading/trailing zeroes (example: "0123.4560"), doing a += 0 is easier than trim tricks.