ltrim()
Artigo sobre a função PHP ltrim(), usada para remover espaços em branco ou outros caracteres especificados do início de uma string.
A função PHP ltrim() remove espaços em branco (ou outros caracteres especificados) do lado esquerdo — o início — de uma string. O "l" significa left (esquerda). Ela é a contraparte de rtrim(), que remove do lado direito, e de trim(), que remove de ambos os lados.
ltrim() é mais útil quando você precisa normalizar entradas sobre as quais não tem controle total: espaços iniciais em campos de formulário, zeros à esquerda em identificadores ou separadores iniciais que ficaram após divisão ou concatenação de strings.
Sintaxe
ltrim(string $string, string $characters = " \n\r\t\v\0"): string| Parâmetro | Descrição |
|---|---|
$string | A string de entrada a ser cortada. |
$characters | Opcional. O conjunto de caracteres a remover. Cada caractere é tratado individualmente — a ordem não importa. Quando omitido, o conjunto padrão de espaços em branco é usado. |
A função retorna uma nova string; o original nunca é modificado (strings PHP são passadas por valor).
O conjunto de caracteres padrão
Ao chamar ltrim() com um único argumento, ela remove estes caracteres da esquerda:
" "(espaço comum)"\t"(tabulação)"\n"(nova linha)"\r"(retorno de carro)"\0"(byte NUL)"\v"(tabulação vertical)
Removendo espaços em branco à esquerda
O uso mais comum é limpar espaços em branco iniciais:
Saída:
[Hello World! ]Observe que os espaços finais permanecem — ltrim() toca apenas o lado esquerdo. Os colchetes [ e ] são adicionados apenas para tornar os limites visíveis na saída.
Removendo caracteres específicos
Passe um segundo argumento para remover um conjunto personalizado de caracteres em vez de espaços em branco. Um caso clássico é remover zeros à esquerda:
<?php
echo ltrim("0042", "0"); // 42
echo "\n";
echo ltrim("xxxHello", "x"); // Hello
?>Saída:
42
HelloO argumento $characters é um conjunto, não uma substring. Cada caractere listado é removido independentemente, portanto ltrim($line, ".,") remove qualquer combinação de pontos e vírgulas iniciais:
<?php
$line = "...,.,Hello, World";
echo ltrim($line, ".,"); // Hello, World
?>Saída:
Hello, WorldEle para no primeiro caractere que não está no conjunto (H aqui), deixando o , interno em Hello, World intocado.
Problemas comuns
- Não é uma remoção de substring.
ltrim("hello", "he")remove os caractereshee, retornando"llo"— ele não procura pelo prefixo literal"he". Para remover um prefixo conhecido, usestr_replace()na primeira ocorrência ousubstr(). - Baseado em bytes, não compatível com Unicode.
ltrim()opera em bytes, portanto pode corromper caracteres UTF-8 multibyte se você listá-los em$characters. Para ASCII é perfeitamente seguro; para cortar caracteres multibyte, use um padrão depreg_replace()com o modificadoru. - Retorna uma cópia. Atribua o resultado de volta se quiser mantê-lo:
$s = ltrim($s);.
Quando usar qual trim
| Necessidade | Use |
|---|---|
| Remover apenas do início | ltrim() |
| Remover apenas do fim | rtrim() |
| Remover de ambos os lados | trim() |
Para uma visão mais ampla do tratamento de strings em PHP, consulte PHP Strings.