fbpx

Javascript Desativado!

É necessário ativar o javascript do seu navegador para acessar!

Manipulação de Strings com PHP - Evertec Digital

Manipulação de Strings com PHP

Vamos mostrar aqui como manipular strings com PHP de várias formas e para vários propósitos, de um jeito fácil e prático.

Manipulação de Strings com PHP
0302
Compartilhe esse conteúdo!

Os comandos que mostraremos aqui são os mais comuns que utilizamos em nosso dia a dia para fazer a manipulação de strings com PHP, facilitando uma consulta rápida e prática para a hora de codificar o seu projeto.

String Multibyte

Antes de começar com manipulação de string é necessário compreender a diferença entre string e string multibyte. O PHP foi desenvolvido em inglês, logo, nesse idioma não é utilizado acentos e outros caracteres, sendo que esses elementos também são contados como um caracter válido. Saiba mais na documentação oficial.

Logo, se o projeto no qual você está trabalhando, possível textos de idiomas que podem conter acentos e outros caracteres, é possível utilizar o prefixo “mb_” em cada comando, para ele considerar a quantidade certa de cada string, desconsiderando os acessos e caracteres especiais.

Exemplo: strlen e mb_strlen

O strlen é utilizado para contar caracteres, os valores resultantes de cada comando poderão ser diferentes como no exemplo a seguir:

$string = "Você é incrível!"
echo strlen($string); // Resultado: 19
echo mb_strlen($string) //Resultado: 16

Os demais comandos também poderão ter resultados diferentes do esperado, dependendo com contexto no qual irá utiliza-los sempre utilize os comandos com o prefixo “mb_“.

mb_strtolower

Converte todo o conteúdo de uma string em minúsculo.
$texto = "Marcelo Silva";
echo strtolower($texto);
//Resultado: marcelo silva

mb_strtoupper

Converte todo o conteúdo de uma string em maiúsculo (caixa baixa).
$texto = "Marcelo Silva";
echo strtoupper($texto);
//Resultado: MARCELO SILVA

mb_substr

Esse comando é muito útil quando se quer pegar apenas uma parte de uma string.  Nele é necessário informar 3 parâmetros, sendo que o terceiro é opcional, sendo:
  • String = Conteúdo no qual será manipulado;
  • Start = A posição inicial no qual ele deve começar a leitura, lembrando que a posição zero será o primeiro carácter, se o valor for negativo ele irá começar do final para o inicio da string;
  • Length = (Opcional) se o valor for positivo, ira buscar valores da esquerda para direita. Se o valor for negativo, irá buscar valores da direita para esquerda.
Vamos aos exemplos:
//Pegando apenas o primeiro nome.
$nome = "Evertec Digital";
echo substr($nome, 0, 7);
//Resultado: Evertec

 

No exemplo acima eu informei o nome da variável ($nome), a posição inicial (0) e a quantidade de caracteres que deveria ler (7). Como deve ter notado, isso não é nada prático e muito pouco usual já que não tem como saber qual é a quantidade de caracteres tem o nome de toda string. E é ai que entra o strpos e o strrpos, que irá localizar dinamicamente a localização de um carácter específico.
O strpos irá buscar a posição de um determinado carácter informado, buscando da esquerda para direita, já o strrpos irá buscar o caracter informado da direita para esquerda.
Seguindo o mesmo exemplo acima, teremos:
//Pegando apenas o primeiro nome.
$nome = "Evertec Digital";
echo substr($nome, 0, strpos($nome, ' '));
//Resultado: Evertec
//Pegando apenas o ultimo nome.
$nome = "Evertec Digital";
echo substr($nome, strrpos($nome, ' '));
//Resultado: Digital

Nesse caso não é necessário informar o terceiro parâmetro pois queremos que o comando retorne todos os elementos a partir do ponto inicial informado dinamicamente.

ucwords

Converte apenas a primeira letra de cada palavra do conteúdo de uma string em maiúsculo (caixa alta).
$texto = "marcelo silva";
echo ucwords($texto);
//Resultado: Marcelo Silva

Porém o comando acima não irá converter os demais caracteres da string em minúsculo, logo, é necessário converter toda a string para minúsculo para depois converter o primeiro carácter para maiúsculo.  Para isso proceda da seguinte forma:

$texto = "MArcRlo siLVa";
echo ucwords(strtolower($texto));
//Resultado: Marcelo Silva

ucfirst

Converte apenas a primeira letra do conteúdo da string, ignorando o status de todo o resto.
$texto = "marcelo silva";
echo ucfirst($texto);
//Resultado: Marcelo silva

O comando acima não irá converter os demais caracteres em minúsculo, para isso, casos seja aplicado para a sua situação, poderá primeiro tornar todo o conteúdo minúsculo, para depois converter o primeiro carácter para maiúsculo, procedendo da seguinte forma:

$texto = "MArcRlo siLVa";
echo ucfirst(strtolower($texto));
//Resultado: Marcelo silva

str_replace

Esse comando irá retornar a substituição do conteúdo de uma determinada string, para isso é necessário informar 4 parâmetros, sendo que o quarto parâmetro é opcional:
  • Search = Informação que será substituída;
  • Replace = A nova informação que irá substituir;
  • Subject = pode ser uma string ou um array no qual irá passar pelo processo de substituição.
  • Count = essa informação é opcional, é uma variável que pode ser adicionada para retornar o número de substituições que forma feitas. Comumente esse recurso é pouco utilizado.  Vamos a um exemplo:
$frase = "Eu quero ir na churrascaria";
$novafrase = str_replace("churrascaria", "temakeria", $frase);
echo $novafrase;
//Resultado: Eu quero ir na temakeria

Como tratar nomes de imagens com PHP

É uma boa prática de desenvolvimento renomear o nome das imagens enviadas pelo usuário antes de subir para o servidor, afim de evitar erros de indexação e de lincagem interna para as mesmas. Essas imagens podem ser enviadas com elementos que precisam ser eliminados ou substituídos, como caracteres especiais, espaços, cedilha, entre outros. Vamos utilizar a manipulação de strings para resolver esse caso na prática.
No exemplo abaixo, iremos converter o nome da imagem para minúsculo e substituir os espaços por um traço “-“, vejamos:
$img = "Nome da Imagem.png"
$imagem =  strtolower(str_replace(' ', '-', $img));
echo $imagem;
//Resultado: nome-da-imagem.png

Vamos supor que agora queremos identificar apenas a extensão da nossa imagem, nesse caso iremos buscar pelo ultimo ponto presente no nome da imagem:

 

$ext = substr($imagem, strrpos($imagem, '.'));
echo $ext;
//Resultado: .png

Como pode notar, o resultado retornou também o ponto. Caso queira para remove-lo após o comando do strrpos pode somar mais um (+1) para ele considerar a partir da posição 1 posterior a ele. Vejamos:

 

$ext = substr($imagem, strrpos($imagem, '.') +1);
echo $ext;
//Resultado: png

Aqui mostramos apenas algumas das formas que mais utilizamos em nosso dia a dia de programador para manipulação de strings e existem muitas outras formas que não foram apresentadas aqui. Para conhecer mais, acesse a documentação do PHP clicando aqui.

Conheça também nossa página com dicas de ferramentas e recursos para desenvolvimento, SEO e Social Média clicando aqui.
Espero ter ajudado!

Compartilhe esse conteúdo!
Tags do Post:

Conheça nossos cursos

Cursos de Desenvolvimento Web para você elevar ainda mais as suas habilidades profissionais!

Conheça nossos cursos

Mais Populares

Veja os nossos conteúdos mais acessados.