Funções de manipulação de strings em PHP

O que é string?

Uma string é uma sequência de caracteres, onde 1 caractere corresponde a 1 byte (8 bits). O PHP oferece suporte a um conjunto de 256 caracteres, por isso, não possui suporte integrado para Unicode.

O que é Unicode?

O Unicode é uma extensa tabela que relaciona um número único (code point) a cada letra ou símbolo diferente de todos os alfabetos utilizados em todo o mundo. Saiba mais sobre unicode aqui.

Veremos neste artigo uma função para tratar caracteres em unicode.

Declarando uma string

Uma string literal pode ser especificada de quatro formas diferentes.

Aspas simples

PHP
echo 'iso é uma string comum';

Aspas duplas

PHP
echo "iso é uma string que interpreta sequência de escape como caracteres especiais";
SequênciasSignificado
\nNova linha (LF ou 0x0A (10) em ASCII)
\rRetorno de carro (CR ou 0x0D (13) em ASCII)
\tTabulação horizontal (HT ou 0x09 (9) em ASCII)
\vTabulação vertical (VT ou 0x0B (11) em ASCII)
\eEscape (ESC or 0x1B (27) em ASCII)
\fForm feed (FF ou 0x0C (12) em ASCII)
\\contrabarra ou barra invertida
\$Sinal de cifrão
\"aspas duplas
Tabela da documentação oficial do PHP

Heredoc

PHP
$str = <<<EOD
Exemplo de uma string
distribuída em várias linhas
utilizando a sintaxe heredoc.
EOD;

Nowdocs

PHP
<?php
echo <<<'EOD'
Exemplo de string abrangendo várias linhas
usando a sintaxe nowdoc. As barras invertidas são sempre tratadas literalmente,
exemplo: \\ e \'.
EOD;

Para saber mais sobre essas 4 formas de especificar uma string acesse a documentação.

Funções nativas de string

Neste artigo vamos abordar algumas funções de manipulação de string, caso queira se aprofundar veja a lista de funções na documentação oficial.

trim()

A função trim retira espaço no ínicio e final de uma string.

PHP
$nomeCompleto = '   marcos    vinicius. ';
$trim = trim($nomeCompleto);

echo $trim;

// O exemplo acima irá imprimir:
// marcos vinicius.

$text = "\t\tThese are a few words :) ...  ";
$trimmed = trim($text, " \t.");
var_dump($trimmed);

// O exemplo acima irá imprimir:
// string(24) "These are a few words :)"

strlen()

A função strlen retorna o tamanho de uma string.

PHP
$str = 'abcdef';
echo strlen($str); // 6
	
$str = 'Marcos Vinicius';
echo strlen($str); // 15

substr()

A função substr retorna uma parte de uma string.

PHP
substr(string, start, length);
PHP
$string = 'DevPro Community';
$devpro= substr($str, 0, 6);
echo $devpro;

strstr()

A função strstr encontra a primeira ocorrencia de uma string.

PHP
$string = "que interessante, não é mesmo, Arnaldo?";
echo strstr($string, ",");

// Saída
, não é mesmo, Arnaldo?

strrchr()

A função strrchr encontra a última ocorrência de um caractere em uma string.

PHP
$string = "que interessante, não é mesmo, Arnaldo?";
echo strrchr($string, ",");

// Saída
, Arnaldo?

strlen() + substr()

Exemplo utilizando a função strlen e substr.

PHP
$str = 'Marcos Vinicius';
echo "A string contém ",strlen($str), "caractres."; // 15

// Exemplo
if($str > 8) {
	// substr(string, start)
   $caracter_3 = substr($str, 0, 3);
   echo "Se a string contém mais de 8 caracteres, então imprime somente 3 caracteres: {$caracter_3}";
}
Plaintext
A string contém 15 caracteres.
Se a string contém mais de 8 caracteres, então imprime somente 3 caracteres: Mar

strtolower(), mb_strtolower, strtoupper(), mb_strtoupper e mb_convert_case, ucfirst, ucwords

strtolower — Converte uma string para minúsculas.
strtoupper — Converte uma string para maiúsculas

Essas funções não convertem alguns caracteres com acentuações. Para isso é necessário usar a função com multibyte. mb_strtolower e mb_strtoupper() ou ainda a função mb_convert_case().

PHP
// LOWER
$string = 'MaRcOs VinÍCIUS não É VacilÃo.';
$string_lower = strtolower($string);
echo "<strong>strToLower: </strong>{$string_lower}", "<br>";

$mb_string = "VOVÔ TAMBÉM NÃo.";
$mb_string_lower = mb_strtolower($mb_string );
echo "<strong>mb_strToLower: </strong>{$mb_string_lower}", "<br>";

// UPPER

/*
 * $string_u = 'marcos vinícius não é vacilão.';
 * $string_upper = strtoupper($string_u);
 * echo "<strong>strToUpper: </strong>{$string_upper}", "<br>";
 *
 * $mb_string_u = "vovô também não.";
 * $mb_string_lower = mb_strtoupper($mb_string_u );
 * echo "<strong>mb_strToUpper: </strong>{$mb_string_lower}", "<br>";
 *
 */

$string_u = 'marcos vinícius não é vacilão.';
$mb_string_u = "vovô também não.";
$upper = [
  "STR_TO_UPPER" => strtoupper($string_u),
  "MB_STR_TO_UPPER" => mb_strtoupper($mb_string_u)
];

echo "<br><pre>",print_r($upper, true), "</pre><br>";


// UC
$nome = 'marcos vinicius macedo';
echo "<b>ucWords: </b>", ucwords($nome), "<br>";
$sobrenome = 'da silva';
echo "<b>ufFirst: </b>", ucfirst($sobrenome), "<br><br>";

// MB_CONVERT_CASE
$name = 'marcos vinicius macedo silva';

$a = [
  "MB_CASE_TITLE" => mb_convert_case($name, MB_CASE_TITLE),
  "MB_CASE_UPPER" => mb_convert_case($name, MB_CASE_UPPER),
  "MB_CASE_LOWER" => mb_convert_case($name, MB_CASE_LOWER)
];

echo "<pre>",print_r($a, true), "</pre>";

// Saída do código abaixo

strpos() e strrpos()

A função strpos encontra a posição da primeira ocorrência de uma string.
A função strrpos encontra a posição da última ocorrência de um caractere em uma string.

PHP
// STRPOS

$nome = 'Marcos Silva';
echo strpos($nome, "S");

// STRRPOS

$sobrenome = 'https://google.com.br';
echo strrpos($sobrenome, '.');

PHP
// Exemplo

$imagem = 'https://cdn.pixabay.com/photo/2020/01/26/10/33/chess-4794265_960_720.jpg';

$pos = strrpos($imagem, '.'); // strrpos() Pega a última ocorrência de um caracter numa string 
$lenght = strlen($imagem); // strlen() Pega o tamanho de uma string
$extension = substr($imagem, $pos, $lenght); // substr() Retorna a parte de uma string determinada pelo start e o length

echo "A extensão é {$extension}";

str_replace()

A função str_replace substitui todas as ocorrências da string de procura com a string de substituição.
str_replace(procurar_string, substituir_string, string)

PHP
$frase  = "você comeria frutas, vegetais, e fibra todos os dias.";

echo str_replace(["frutas", "vegetais", "fibra", "."], ["morango", "banana", "maça", "?"], $frase);

explode()

A função explode divide uma string em strings.

PHP
$frase  = "você comeria frutas, vegetais, e fibra todos os dias.";
$frase_a = explode(",", $frase);

echo "<pre>", print_r($frase_a, true), "</pre>";

mb_pase_str()

A função mb_parse_str() analisa dados GET / POST / COOKIE e definir a variável global.
mb_parse_str($str, $result);

PHP
$endpoint = "nome=Marcos&sobrenome=Silva&[email protected]";
mb_parse_str($endpoint, $parseEnpoint);

var_dump([
    $endpoint, $parseEnpoint
]);s

mb_convert_encoding

A função mb_convert_encoding converte uma string de um encoding para outro. Essa função substitui a utf8_encode que foi depreciada na versão do php 8.

Exemplo prático:

PHP
mb_convert_encoding($item['campo1'],"UTF-8","ISO-8859-1")

Detalhe dos parametros da função:

PHP
mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false

Contribuição: Sinta-se à vontade para deixar seus comentários e contribuições para enriquecer este artigo. Sempre que for relevante, o artigo será atualizado com as informações adicionais fornecidas pelos leitores.

Marcos Vinicius
Marcos Vinicius
Artigos: 13

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *