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.
O que você encontrará aqui?
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
$texto = "Marcelo Silva"; echo strtolower($texto); //Resultado: marcelo silva
mb_strtoupper
$texto = "Marcelo Silva"; echo strtoupper($texto); //Resultado: MARCELO SILVA
mb_substr
- 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.
//Pegando apenas o primeiro nome. $nome = "Evertec Digital"; echo substr($nome, 0, 7); //Resultado: Evertec
//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
$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
$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
- 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
$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.