REGEX_MULTILINE
REGEX_MULTILINE
Parâmetro de expressão regular: múltiplas linhas.
Wrapper para as funções de string da biblioteca padrão do PHP.
Na minha opinião (e na de muitos desenvolvedores, para falar a verdade), um dos piores aspectos do desenvolvimento em PHP é a nomenclatura das funções da biblioteca padrão. Muitas funções recebem nomes absolutamente idiotas por razões históricas (basicamente, "o nome da função C que executa isso é esse, vamos usar o mesmo nome"), o que acabou não só trazendo antigos hábitos de nomenclatura para dentro de uma linguagem que se pretende moderna, como ainda introduziu alguns novos maus hábitos de nomenclatura novos. E isso sem falar em problemas com ordem de parâmetros inconsistente, comportamentos inconsistentes entre funções que deveriam ser parecidas, etc.
O caso das funções de string é bastante emblemático, pois há exemplos de praticamente todos esses problemas. O site PHP Sadness (http://phpsadness.com) faz um bom trabalho de listar os casos, mas basta olhar para coisas como nl2br(), parse_str() e explode() e notar que não há padrão algum na forma como essas funções são nomeadas, ou seus parâmetros ordenados em comparação com outras funções semelhantes.
Esta classe visa prover uma interface normalizada e uniforme para estas funções de string, de modo que o desenvolvedor possa facilmente autocompletá-las utilizando uma IDE minimamente decente sem ter que ficar lembrando ou consultando a documentação do PHP para lembrar exatamente como determinada função funciona. Eu acredito que os beneficios de clareza e legibilidade superem o custo de overhead de uma chamada a mais de função para executar a operação.
No desenvolvimento desta parte da biblioteca, meu objetivo foi manter um equilíbrio entre o padrão minimalista de nomes do PHP nativo e a ridícula verbosidade de nomes estilo Java. Abreviações, quando fazem sentido, foram mantidas.
Quando possível, a versão mb_* (multibyte) de uma função foi preferida à versão normal que só funciona com conjuntos de caracteres restritos, porque suporte a Unicode deveria ser uma preocupação crucial da linguagem. Da mesma forma, funções que precisam de algum tratamento no input para produzir um output adequado em Unicode já implementam estes tratamentos.
hashSenha(string $senha, integer $custo = 10, integer $algoritmo = \PASSWORD_DEFAULT) : string
Cria um hash de senha criptograficamente seguro. O hash gerado é automaticamente "salgado".
Este método deve ser usado preferencialmente no lugar do função crypt, que não salga o hash automaticamente, e
portanto pode ser utilizado incorretamente pelo desenvolvedor.
A função password_hash, apesar de relativamente recente, possui algumas inconsistências na sua declaração (como o parâmetro opcional $salt ser marcado como deprecated no PHP 7). Este método visa tornar estas inconsistências transparentes para o desenvolvedor.
| string | $senha | Senha para a qual se quer gerar o hash. |
| integer | $custo | Custo algorítmico do hash gerado. Quanto maior, melhor a força do hash, porém mais demorada é a geração do mesmo. O valor padrão 10 é considerado um bom valor base para o custo com relação ao tempo gasto. |
| integer | $algoritmo | Identificador do algoritmo usado para a geração do hash. Deve ser uma das constantes de senha do PHP. |
se o hash não pôde ser gerado.
O hash da senha gerado.
separar(string $delimitador, string $string, integer $limite = -1) : array
Separa uma string a partir de uma expressão regular delimitadora.
Este método funciona com strings multibyte.
| string | $delimitador | Expressão regular delimitadora. Para fins de uniformização com outras funções de
expressão regular, a expressão deve ser passada com o delimitador (normalmente, / |
| string | $string | Texto a ser separado. |
| integer | $limite | Indica o limite máximo de elementos em que o texto deve ser divido. Se não informado, o padrão é -1 (sem limite). |
Texto dividido.
unir(string $unificador, array $partes) : string
Une uma lista de caracteres utilizando um caracter de união entre cada elemento.
| string | $unificador | Texto inserido entre cada um dos elementos da lista de caracteres. |
| array | $partes | Lista de caracteres. |
Texto resultante.
substituir(string $string, string $busca, string $substituicao) : string
Substitui todas as ocorrências de uma string por outra.
Ao contrário de várias outras funções de string da biblioteca padrão, str_replace funciona com strings multibyte; porém, a ordem dos parâmetros é diferente (o texto a ser alterado é o último parâmetro, ao invés do primeiro).
Este método visa corrigir este problema de padronização dos parâmetros.
| string | $string | Texto a ser alterado. |
| string | $busca | Parte do texto a ser substituída. |
| string | $substituicao | Texto de substituição. |
Modificadores da expressão regular de busca.
regexBusca(string $string, string $regex) : boolean
Busca por expressão regular dentro de um texto.
Este método funciona com strings multibyte.
| string | $string | Texto onde será feita a busca. |
| string | $regex | Expressão regular de busca. Para fins de uniformização com outras funções de expressão
regular, a expressão deve ser passada com o delimitador (normalmente, / |
Indica se a expressão regular foi encontrada dentro do texto.
regexSubstituir(string $string, string $regex, string $substituicao, string $opcoes = self::REGEX_POSIX . self::REGEX_MODE_RUBY) : string
Substitui as ocorrências de uma string identificada por uma expressão regular por outra.
Este método funciona com strings multibyte.
| string | $string | Texto a ser alterado. |
| string | $regex | Expressão regular de busca. Para fins de uniformização com outras funções de expressão
regular, a expressão deve ser passada com o delimitador (normalmente, / |
| string | $substituicao | Texto de substituição. |
| string | $opcoes | Modificadores da expressão regular de busca. |
Texto substituído.
regexSubstituirCallback(string $string, string $regex, callable $callback, string $opcoes = self::REGEX_POSIX . self::REGEX_MODE_RUB) : string
Substitui as ocorrências de uma string identificada por uma expressão regular utilizando uma função de callback.
Este método funciona com strings multibyte.
| string | $string | Texto a ser alterado |
| string | $regex | Expressão regular de busca. Para fins de uniformização com outras funções de
expressão regular, a expressão deve ser passada com o delimitador (normalmente, / |
| callable | $callback | Função de callback que será chamada passando um array dos elementos encontrados dentro do texto a ser alterado. |
| string | $opcoes | Modificadores da expressão regular de busca. |
Texto substituído.
codificarHtmlEntities(string $string, integer $flags = \ENT_QUOTES | \ENT_HTML5, string $encoding = 'UTF-8', boolean $doubleEncode = true) : string
Codifica todos os caracteres do texto que possuem uma representação como entidade HTML para a entidade correspondente.
$string = "A 'quote' is bold."
// Output: "A 'quote' is <b>bold</b>"
| string | $string | Texto a ser codificado. |
| integer | $flags | Máscara de bits das flags indicando como a conversão deve ser efetuada. O padrão ENT_QUOTES | ENT_HTML5 é o mais indicado para a maioria dos casos (codifica todos os caracteres, incluindo aspas, e trata o código como HTML 5). |
| string | $encoding | Codificação do texto usada para fazer a conversão dos caracteres. Dependendo da versão do PHP, o valor padrão deste parâmetro é completamente diferente; por isso, foi definido o padrão como UTF-8. |
| boolean | $doubleEncode | Indica se entidades HTML pré-existentes no texto devem ser codificadas ou não. |
Texto com os caracteres convertidos para suas representações como entidade HTML.
decodificarHtmlEntities(string $string, integer $flags = ENT_COMPAT | ENT_HTML5, string $codificacao = 'UTF-8') : string
Decodifica as representações de entidade HTML presentes no texto para o caracter correspondente.
$string = 'I'll "walk" the <b>dog</b> now'
// Output: 'I'll "walk" the dog now'
| string | $string | Texto a ser codificado. |
| integer | $flags | Máscara de bits das flags indicando como a conversão deve ser efetuada. O padrão ENT_QUOTES | ENT_HTML5 é o mais indicado para a maioria dos casos (codifica todos os caracteres, incluindo aspas, e trata o código como HTML 5). |
| string | $codificacao | Codificação do texto usada para fazer a conversão dos caracteres. Dependendo da versão do PHP, o valor padrão deste parâmetro é completamente diferente; por isso, foi definido o padrão como UTF-8. |
Texto com os caracteres representados como entidades HTML convertidos para os próprios caracteres.
decodificarBase64(string $string) : string
Decodifica uma string MIME base64.
| string | $string | Texto a ser decodificado. |
se ocorrer um erro na decodificação do texto.
O texto decodificado.
trim(string $string, string $onde = self::TRIM_BOTH, string $caracteres = '') : string
Remove caracteres do início e/ou do final da string.
| string | $string | Texto a ser tratado. |
| string | $onde | Indica onde deve ocorrer a remoção dos caracteres (esquerda/início, direita/fim, ou ambos). |
| string | $caracteres | Lista de caracteres que devem ser removidos. |
Texto com os caracteres informados removidos do início e/ou do final.
reduzir(string $string, integer $inicio, integer $largura, string $marcador = '') : string
Reduz um texto para o tamanho informado, opcionalmente posposto por um texto de marcação.
O texto reduzido é tratado de forma que ele não termine em espaço em branco, mesmo que isto torne-o menor do que o tamanho desejado. Este método funciona com strings multibyte.
| string | $string | Texto a ser reduzido. |
| integer | $inicio | Posição do texto onde deve começar a redução. |
| integer | $largura | Largura máxima do texto reduzido. |
| string | $marcador | Texto de marcação a ser inserido após a redução do texto. |
Texto reduzido.
primeiraLetraMinuscula(string $string) : string
Converte o primeiro caracter do texto informado para minúscula.
Ao contrário da função lcfirst(), este método funciona com strings multibyte.
| string | $string | Texto a ser tratado. |
Texto com o primeiro caracter convertido para minúscula.
primeiraLetraMaiuscula(string $string) : string
Converte o primeiro caracter do texto informado para maiúscula.
Ao contrário da função ucfirst, este método funciona com strings multibyte.
| string | $string | Texto a ser tratado. |
Texto com o primeiro caracter convertido para minúscula.
converterPalavrasMaiusculas(string $string) : string
Transforma o texto convertendo a primeira letra de cada palavra que o compõe para maiúscula, e o restante para minúscula.
$string = 'mary had a Little lamb and she loved it so'
// Output: 'Mary Had A Little Lamb And She Loved It So'
| string | $string | Texto a ser tratado. |
Texto convertido para maiúsculas.
quebrarLinha(string $string, integer $largura = 75, string $quebra = "\n", boolean $cortar = false) : string
Introduz um caracter de quebra na string a cada N caracteres.
Ao contrário da função wordwrap(), este método funciona com caracteres multibyte. Entretanto, ele não é otimizado, sendo desaconselhável utilizá-lo em laços de repetição. Implementação adaptada da solução criada pelo usuário Fosfor, em: http://stackoverflow.com/questions/3825226/multi-byte-safe-wordwrap-function-for-utf-8
| string | $string | Texto a ser dividido. |
| integer | $largura | Largura máxima do texto antes da introdução do caracter de quebra. |
| string | $quebra | Caracter de quebra. |
| boolean | $cortar | Indica se a quebra pode ser inserida no meio de uma palavra. Caso este parâmetro seja false, a quebra é feita sempre após uma palavra, mesmo que isso faça a largura daquele trecho do texto ser menor que o tamanho máximo. |
Texto dividido.
removerDelimitadorRegex(string $regex) : string
Remove o primeiro e o último caracter de uma expressão regular.
As funções de expressão regular da biblioteca mb_* têm uma pegadinha no seu parâmetro $delimiter: embora seja
esperada uma expressão regular, a mesma deve ser informada sem o delimitador, ao contrário das funções padrão que
trabalham com expressões regulares (por exemplo, preg_match()). Este método corrige este problema de
padronização e aceita a expressão regular com o delimitador.
$regex = '/^(a|b)?$/';
// Output: '^(a|b)?$'
| string | $regex | Expressão regular. |