substr – Recuperando substrings a partir de uma string completa
A função substr é usada para retornar uma substring, ou seja, um determinado trecho de uma string. Mas além do uso básico, o feijão-com-arroz, existem outras formas de usá-la.
Seu uso básico consiste em:
$substring = substr($string, $posicao_inicial, $tamanho_da_substring);
Lembrando que posição inicial começa a contar de 0. Ou seja, o primeiro caracter é a posição 0, o segundo 1 etc.
Mas a função pode ser usada de formas que facilitam em alguns casos específicos. Cito alguns:
-
Retornar de uma posição até o final da string
Você pode omitir o terceiro parâmetro, que informa o tamanho da substring, e isso significará que você quer tudo da posição informada para frente. Exemplo:
Do jeito convencional:
$data_hora = '2008-01-01 13:30:00';
$hora = substr($data_hora, 11, strlen($data_hora)-11);
Do jeito fácil:
$data_hora = '2008-01-01 13:30:00';
$hora = substr($data_hora, 11);
-
Retornar de uma posição inicial a N caracteres do final
A posição inicial é contada a partir do início. N significa a partir do (N+1)-ésimo caracter. Para pegar a partir de N posições do final, basta informar um número negativo. Para pegar a penúltima letra de uma palavra, faríamos:
Do jeito convencional:
$letra = substr($str, strlen($str)-2, 1);
Do jeito fácil:
$letra = substr($str, -2, 1);
Outra forma de recuperar substring é usando expressões regulares, um recurso assustadoramente poderoso, mas também mais complexo e mais lento para ser executado. Como regra geral, mesmo que você domine expressões regulares, se o uso de substr for possível, use-a por questões de desempenho e clareza de código.
Deixe um comentário