Helper Text
1Apresentação
Helper que oferece vários métodos para manipulação de strings de caracteres.
2filenamize()
Converte um texto em uma string que pode ser usada como nome de arquivo.
Assinatura do método:
filenamize(string $filename, bool $hyphenSpaces=true, bool $lowercase=true) : string
Parâmetros:
- $filename: Texto a ser convertido.
- $hyphenSpaces: true para que os espaços sejam substituídos por hifens.
- $lowercase: true para que o texto fique todo em minúsculas.
Valor de retorno: O nome do arquivo.
3urlize()
Converte um texto para que ele possa ser usado em uma URL.
Assinatura do método:
urlize(?string $txt, bool $avoidUnderscores=true) : string
Parâmetros:
- $txt: Texto a ser convertido.
- $avoidUnderscores: true para substituir underscores por hifens.
Valor de retorno: O texto convertido.
4isValidHtmlSyntax()
Este método verifica se um fluxo HTML está sintaticamente correto.
Assinatura do método:
isValidHtmlSyntax(string $html) : bool
Parâmetro: O fluxo HTML a ser validado.
Valor de retorno: true se o fluxo HTML for válido, false caso contrário.
5htmlToText()
Este método transforma um fluxo HTML em texto puro.
Assinatura do método:
htmlToText(string $html, bool $cleanup=false) : string
Parâmetros:
- $html: Fluxo HTML a ser convertido.
- $cleanup: true para remover o conteúdo das tags <blockquote>, <pre> e <code>.
Valor de retorno: Texto puro gerado a partir do HTML.
6encodingCompatible()
Este método indica se uma string de caracteres codificada em UTF-8 contém apenas caracteres compatíveis com a codificação fornecida como parâmetro.
Assinatura do método:
encodingCompatible(string $text, string $encoding) : bool
Parâmetros:
- $text: O texto a ser analisado.
- $encoding: A codificação a ser usada.
Valor de retorno: Verdadeiro se o texto contiver apenas caracteres compatíveis com a codificação de caracteres fornecida como parâmetro.
7ascii()
Este método converte uma string para que ela contenha apenas caracteres ASCII.
Assinatura do método:
ascii(?string $text) : string
Parâmetros:
- $text : O texto a ser transformado.
Valor de retorno: O texto transformado.
8firstChunk()
Este método retorna a parte de uma string que vem antes de um separador.
Assinatura do método:
firstChunk(string $str, string $separator) : string
Parâmetros:
- $str : A string de entrada.
- $separator : O separador.
Valor de retorno: A parte antes da string, ou uma string vazia se o separador não foi encontrado.
9lastChunk()
Este método retorna a parte de uma string que vem depois de um separador.
Assinatura do método:
lastChunk(string $str, string $separator) : string
Parâmetros:
- $str : A string de entrada
- $separator : O separador.
Valor de retorno: A parte depois da string, ou uma string vazia se o separador não foi encontrado.
10hasLower()
Este método indica se uma string contém um caractere minúsculo.
Assinatura do método:
hasLower(?string $txt) : bool
Parâmetros:
- $txt : A string a ser analisada.
Valor de retorno: true se a string contiver um caractere minúsculo. Falso caso contrário.
11hasUpper()
Este método indica se uma string contém um caractere maiúsculo.
Assinatura do método:
hasUpper(?string $txt) : bool
Parâmetros:
- $txt : A string a ser analisada.
Valor de retorno: true se a string contiver um caractere maiúsculo. Falso caso contrário.
12convertCase()
Este método converte o estilo de escrita de uma string de caracteres.
Assinatura do método:
convertCase(?string $txt, string $inCase, string $outCase, ?bool $upperCase=null, bool $ascii=false) : ?string
Parâmetros:
- $txt : A string a ser convertida.
- $inCase : O estilo de escrita da string de entrada. Pode receber os valores \Temma\Utils\Text::SNAKE_CASE (snake_case), \Temma\Utils\Text::KEBAB_CASE (kebab-case), \Temma\Utils\Text::CAMEL_CASE (camelCase), \Temma\Utils\Text::PASCAL_CASE (PascalCase) ou \Temma\Utils\Text::UPPER_CASE (UPPER_CASE).
- $outCase : O estilo de escrita da string de saída. Pode receber os valores \Temma\Utils\Text::SNAKE_CASE (snake_case), \Temma\Utils\Text::KEBAB_CASE (kebab-case), \Temma\Utils\Text::CAMEL_CASE (camelCase), \Temma\Utils\Text::PASCAL_CASE (PascalCase) ou \Temma\Utils\Text::UPPER_CASE (UPPER_CASE).
- $upperCase : (opcional) true para maiúsculas, false para minúsculas, null para não alterar a caixa. Quando o estilo de saída é UPPER_CASE, a string é forçada para maiúsculas; a menos que esse parâmetro seja false, caso em que a saída é equivalente a SNAKE_CASE.
- $ascii : true para converter a string de saída de modo que ela contenha apenas caracteres ASCII.
Valor de retorno: A string convertida, ou null se a string de entrada era null.
Exemplo de uso:
use \Temma\Utils\Text as TµText;
// conversão de um estilo de escrita para outro
TµText::convertCase('hello_world', TµText::SNAKE_CASE, TµText::CAMEL_CASE); // 'helloWorld'
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::KEBAB_CASE); // 'hello-world'
TµText::convertCase('hello-world', TµText::KEBAB_CASE, TµText::PASCAL_CASE); // 'HelloWorld'
// conversão para UPPER_CASE (snake case em maiúsculas)
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::UPPER_CASE); // 'HELLO_WORLD'
// conversão a partir de UPPER_CASE
TµText::convertCase('HELLO_WORLD', TµText::UPPER_CASE, TµText::CAMEL_CASE); // 'helloWorld'
// saída UPPER_CASE com $upperCase definido como false => snake case
TµText::convertCase('helloWorld', TµText::CAMEL_CASE, TµText::UPPER_CASE, false); // 'hello_world'
13mimeTypesMatch()
Este método verifica se dois tipos MIME são compatíveis. Os dois tipos MIME devem ter a mesma caixa (maiúsculas/minúsculas).
Assinatura do método:
mimeTypesMatch(string|array $mime1, string|array $mime2) : bool
Parâmetros:
- $mime1: Primeiro tipo MIME. String no formato "image/png", "image/*" ou "image". Array no formato ['image', 'png'], ['image', '*'] ou ['image'].
- $mime2: Segundo tipo MIME (mesmos formatos que $mime1).
Valor de retorno: true se os tipos MIME forem compatíveis.
Exemplo de uso:
use \Temma\Utils\Text as TµText;
// correspondência exata
TµText::mimeTypesMatch('image/png', 'image/png'); // true
// correspondência com curinga
TµText::mimeTypesMatch('image/*', 'image/png'); // true
// sem subtipo (equivalente a "image/*")
TµText::mimeTypesMatch('image', 'image/jpeg'); // true
// tipos incompatíveis
TµText::mimeTypesMatch('image/png', 'text/html'); // false
// com arrays
TµText::mimeTypesMatch(['image', 'png'], ['image', '*']); // true
14parseSize()
Este método analisa uma string de tamanho (ex. '10M', '5K') e retorna o valor correspondente em bytes.
Assinatura do método:
parseSize(mixed $len, int $base=1024) : ?int
Parâmetros:
- $len: O valor de tamanho a ser analisado. Pode ser um inteiro, um float, ou uma string com um sufixo de unidade.
- $base: (opcional) A base de cálculo desejada. Padrão: 1024.
Valor de retorno: O tamanho em bytes, ou null se null foi recebido como parâmetro.
Exceção: Lança uma exceção \Temma\Exceptions\IO se a string não estiver em um formato válido.
Sufixos reconhecidos (não sensível a maiúsculas/minúsculas):
- K: kilo (base1)
- M: mega (base2)
- G: giga (base3)
- T: tera (base4)
- P: peta (base5)
- E: exa (base6)
Exemplo de uso:
use \Temma\Utils\Text as TµText;
// com a base padrão (1024)
TµText::parseSize('10K'); // 10240
TµText::parseSize('5M'); // 5242880
TµText::parseSize('2G'); // 2147483648
// com base 1000
TµText::parseSize('10K', 1000); // 10000
TµText::parseSize('5M', 1000); // 5000000
// valores numéricos diretos
TµText::parseSize(1024); // 1024
TµText::parseSize(null); // null