Mostrar mensagens com a etiqueta Frase. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Frase. Mostrar todas as mensagens

Mudar primeira letra minúscula de frase para Maiúscula com PHP

Existem modos de transformar a primeira letra de uma frase ou texto em maiúscula usando PHP, claro que nem sempre a coisa é tão fácil e completa por tratar-se de um trabalho não humano, mas, vou mostrar algum modo de fazer essa mudança de letras minúsculas para maiúsculas.

Exemplo 1, tenta transforma a primeira letra da string em maiúscula

Esse código usa ucfirst que tem essa função de transformar a primeira letra(caractere) da string em maiúscula, mas é falho por não mudar acentuadas, Ç ou caracteres não alfabéticos serão considerados como o primeiro, aí ferra tudo.

<?php

$Frase = 'este é o meu texto super coerente';
// Transforma o primeiro caracter do texto em maiuscula, desde que não começe com espaço, nem ç, nem acentuada
$FirstLetterM=ucfirst($Frase);

// exibir meu texto
echo $FirstLetterM;
// Resulta em 'Este é o meu texto super coerente'
?>

Este exemplo acima, bem simples, como você vê tem um problema, se começar com uma acentuada ele simpesmente nada fará, só manterá o texto ou frase normalmente

Exemplo 2, com filtros "fortes" para trocar acentuadas minusculas


Esse filtro usa o primeiro código acima e depois um outro filtro de caracteres difinidos por você, para saber mais clique, só que, eu programei o apenas para alguns caracteres, caberá a você mudar, se quiser

<?php

$Frase = '  é este o meu texto que começa com acentuada';
// Transforma o primeiro caracter do texto em maiuscula, desde que não começe com espaçamento, nem ç, nem acentuadas
$FirstL=ucfirst($Frase);

// 'concatena' uns caracteres qualquer '§on§' que para saber o início do texto
$PrimeiraLetra='§on§'.$FirstL;
// agora meu texto virou: '§on§  é este o meu texto que começa com acentuada'

// se meu texto começar com espaçamento esse filtro tirar até 5
$FiltraEspaco=array("§on§     "=>"§on§","§on§    "=>"§on§","§on§   "=>"§on§","§on§  "=>"§on§","§on§ "=>"§on§");
$NotFirstSpace=strTr($PrimeiraLetra,$FiltraEspaco);
// agora meu texto virou: '§on§é este o meu texto que começa com acentuada'

// quando encontrar §on§ seguido de ç, é, á, ó, ú, í  troca por §on§ seguida de maiúscula que eu defini
$FiltraMinuscula=array("§on§ç"=>"§on§Ç","§on§é"=>"§on§É","§on§á"=>"§on§Á","§on§ó"=>"§on§Ó","§on§ú"=>"§on§Ú","§on§í"=>"§on§Í");
$AsMaiuscula=strTr($NotFirstSpace,$FiltraMinuscula);
// agora meu texto virou: '§on§É este o meu texto que começa com acentuada'

// retirar os caracteres feios '§on§' do inicio do texto
$TiraLixo=array("§on§"=>"");
$AgoraMaiuscula=strTr($AsMaiuscula,$TiraLixo);
// agora meu texto virou: 'É este o meu texto que começa com acentuada'


// exibir meu texto
echo $AgoraMaiuscula;
// Resulta em 'É este o meu texto que começa com acentuada'
?>


Exemplo 3, tentará mudar a primeira letra da string para maiúscula

Esse código usa strtoupper que tem essa função de transformar as letra da string em maiúscula, mas é falho por não mudar acentuadas ou Ç e aqui, ele vai pegar só a primeira letra da string $str, pego a primeira letra com $str[0] e se eu quisesse a segunda usaria $str[1] e a terceira $str[2] e assim sucessivamente

<?php
$str= 'eis a minha frase';

// Pega o primeiro caractere da string e tenta converter em maiuscula
$str[0]=strtoupper($str);

// exibir minha frase
echo $str;
// Resultar em: 'Eis a minha frase'
?>


Só para criar minhocas nas nossas cabeças, e para dar mais uma amostragem desse último exemplo, já que interessante, vamos que eu queira mudar o terceira caractere(se letra) por uma maiúscula, claro, desde que não acentuada ou...
<?php
$str= 'eis a minha frase';

// Pega o primeiro caractere da string e tenta converte em maiúscula
$str[2]=strtoupper($str[2]);

// exibir minha frase
echo $str;
// Resultar em: 'eiS a minha frase'
?>


Filtrar e impedir números ou letras com uso de Php

Algumas maneiras de filtrar ou separar números e letras de textos ou palavras usando Php.
filtro de numeros e letras em php
Nem um dos códigos abaixo é um filtro muito completo ou que garanta exatamente um resultado eficiente, mas como um dia postei filtro para palavra ou numero pré estabelecido e agora precisei um filtro que impedisse números, aí resolvi postar um que usei e outros que podem vir a ter alguma utilidade.

Primeiro exemplo com is_numeric

Infelizmente não reconhece vírgula como parte de valor numérico

<?php
$valores="+422.77";

if(is_numeric($valores)){
// Se valores permitidos
$ValorFinal = $valores." é numérico";}
else{
// Se valores não permitidos
$ValorFinal = $valores." não numérico! Pode usar sinal positivo ou negativo +- no inicio do número e pode usar ponto(.) mas não virgula";
};

echo $ValorFinal;
//resultar em "+422.77 é numérico"
?>

Exemplos de códigos que filtram ou exibem só o "permitido"

Esse código é bom para copiar e testar com outra frase e diferentes caracteres

<?php
$FraseNumeroE="Vamos criar filtros em PHP...? Com Ç e nÚmeros 1.234.567,89";

// Permite apenas números
$Filtrar = eregi_replace('([^0-9])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resultará: 123456789

// Permite números e ponto e vírgula . , mas problematico
$Filtrar = eregi_replace('([^0-9.9,])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: ...1.234.567,89

// impede apenas números
$Filtrar = eregi_replace('([0-9])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: Vamos criar filtros em PHP...? Com Ç e nÚmeros ..,

// permite somente letras simples impede acentuadas, retira espaços, ç...
$Filtrar=eregi_replace('([^a-z])','',$FraseNumeroE);
echo $Filtrar.'<br>';
//Resulta: VamoscriarfiltrosemPHPComenmeros

?>


    Outros artigos parecidos e interessantes:
  • Perguntas php-numeros << Vi um JavaScript para alerta em formulário que pode ser útil, se modificado...
  • ctype_digit Verifica se são apenas números "simples" de zero a nove, ou seja números inteiros
  • ctype_alpha "Verifica se os caracteres são alfabéticos", permite maiúscula/minúscula, talvez não permita ç, nem "espaçamento em branco" nem acentuadas
  • ctype_alnum "Verifica se os caracteres são alfanuméricos" permite ABcd1984, ou seja, pode maiúscula/minúsculo e números inteiros. Talvez não permita ç, nem "espaçamento em branco", nem acentuadas e nem outros caracteres de sinais como?!@%-+

Limitar tamanho de frase ou texto com Php, sem cortes em palavra

como limitar texto com ... pontinhos em php
Como limitar o tamanho de um texto com quantia de caracteres em Php, mas sem cortar uma palavra ao meio.
Por vários motivos a gente pode precisar fazer cortes em textos muito grandes, talvez queira mostrar algo 'resumido'...É bem simples de usar, basta alterar o número de $limit = 30 no código abaixo:

<?php
function LimiteFrase($frase, $limit)
{
$frase = substr($frase, 0, strrpos(substr($frase, 0, $limit), ' ')) . '...';
return $frase;
}

// String com texto
$FraseGrande = 'Eu quero um texto não muito grande para que não fique
cansativo e não coloque meus leitores para correr quando vê-lo';

// Nova String para texto limitado
$FraseLimitada = LimiteFrase($FraseGrande, $limit = 30);

// Exibindo a string limitada em 30 caracteres
print $FraseLimitada;
?>