Em um post anterior, eu expliquei sobre o uso das funções explode e implode. Hoje tenho duas funções que podem ter utilização similar. Digo podem pois, sua função básica não tem nada haver com o explode, mas, seu retorno pode ser útil para separar uma determinada string, como separar o usuário de um e-mail por exemplo.
Estou falando da função strstr e stristr, estas duas funções procuram pela primeira ocorrência da string que você passar como parâmetro. Se ela encontrar qualquer ocorrência da string a função retornará a parte anterior a esta ocorrência.
strstr e stristr
As duas funções são bem semelhantes mas possuem uma única diferença, a strstr é case sensitive. Assim se a busca exige precisão entre maiúsculas e minusculas o uso da strstr é o mais recomendado. Mas vamos ao código.
$email = 'felipe_string_php@dialhost.com.br'; $find_it = '@'; $part_string_1 = strstr ( $email , $find_it , true ); echo '<b>buscando o usuário: </b>'.$part_string_1; echo '<br>'; $part_string_2 = strstr ( $email , $find_it ); echo '<b>buscando o domínio: </b>'.$part_string_2; echo '<br>'; $part_string_3 = substr($part_string_2, 1); echo '<b> domínio sem o @: </b>'.$part_string_3;
Acima usei um exemplo simples que separa o domínio do usuário. No caso defini na variável $email o e-mail que gostaria de tratar. Esta variável pode ser preenchida manualmente ou por um formulário (o que possivelmente será o mais natural.).
Depois defini o parâmetro da busca ‘@’ e assim fui usando o strstr com o parâmetro [before needle] como true (para pegar o valor anterior) ou false (para pegar o valor posterior). Por fim fiz uma complementação do código utilizando a função substr. Ela é responsável por quebrar uma palavra a partir de um determinado ponto, mas ela eu explico melhor em um outro artigo. Como resultado tive estes retornos.
Neste caso a utilização da stristr teria o mesmo resultado, já que se trata de um caractere especial. Mas, se sua busca envolver um caracter alfabético, ai sim ela poderá ter mais valia.
Ela também pode ser utilizada como forma de verificar a existência de uma palavra, letra ou termo dentro de um texto. E na verdade ela se trata de uma função bem simples para este tipo de verificação.
Espero que este comando tenha sido útil. No próximo mês continuo com esta série explicando mais alguns comandos para tratamento de strings.