(PHP 4, PHP 5, PHP 7)
substr — Retorna uma parte de uma string
$string
, int $start
[, int $length
] ) : string
Retorna a parte de string especificada pelo
parâmetro start e length.
stringA string de entrada. Deve ter ao menos um caracter.
start
Se start não for negativo, a string retornada iniciará
na posição start em
string, começando em zero. Por exemplo,
na string 'abcdef', o caractere na posição
0 é 'a', o
caractere na posição 2 é
'c', e assim em diante.
Se start for negativo, a string retornada
irá começar no caractere start
a partir do fim de string.
Se a string for mais curta que o parâmetro
start, FALSE will be returned.
Exemplo #1 Usando um início negativo
<?php
$rest = substr("abcdef", -1); // retorna "f"
$rest = substr("abcdef", -2); // retorna "ef"
$rest = substr("abcdef", -3, 1); // retorna "d"
?>
length
Se length for dado e for positivo,
a string retornada irá conter length caracteres
começando em start (dependendo do tamanho de
string).
Se length for informado e for negativo, então esta quantidade
caracteres serão omitidos do final de string
(após a posicão de inicio ter sido calculada quando
start for negativo). Se
start denota uma posição além da truncagem,
FALSE will be returned.
Se length for informado como 0,
FALSE or NULL, uma string vazia será retornada.
Se length for omitido, a substring iniciando em
start será
retornada.
Exemplo #2 Usando um length negativo
<?php
$rest = substr("abcdef", 0, -1); // retorna "abcde"
$rest = substr("abcdef", 2, -1); // retorna "cde"
$rest = substr("abcdef", 4, -4); // retorna false
$rest = substr("abcdef", -3, -1); // retorna "de"
?>
Retorna a parte extraída da string; ou FALSE em caso de falha, ou
uma string vazia.
| Versão | Descrição |
|---|---|
| 7.0.0 |
Se string tiver o comprimento de
start, uma string vazia será
retornada. Antes dessa versão, retornava FALSE nesse caso.
|
| 5.2.2 - 5.2.6 |
Se start indicar a posição de truncagem
negativa ou além, retorna false. Outras versões
retornavam a string a partir do começo.
|
Exemplo #3 Uso básico da substr()
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// O acesso a caracteres individuais pode
// ser feito atravéz de indexação
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Exemplo #4 Comportamento de cast no substr()
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
O exemplo acima irá imprimir no PHP 7:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
O exemplo acima irá imprimir no PHP 5:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'
Returns FALSE on error.
<?php
var_dump(substr('a', 2)); // bool(false)
?>