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

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?!@%-+

Filtro para permitir números ou letras, em Php bem simples e prático

Filtro para números ou não, filtra determinado valor, seja frase, palavra ou letra e exibe se é permitido.
Fiz três exemplos, os dois primeiros são simples, idênticos, apenas com um valor de 'entrada' diferente, o terceiro é mais incrementado.
Aviso sobre segurança - Tratando de números, nos códigos abaixo, os valores numéricos dentro do array devem estar entre aspa simples, principalmente se eles serão inseridos pelos usuários(clientes), ou irá permitir outros valores, no código de exemplo abaixo, um valor como 27 ou 2blabla passariam como permitidos.

Código de exemplo, problemático

Vamos lembrar que, esse código abaixo funciona, mas a função principal, que seria impedir outros números de passar não funciona, os números 2, 4 e 6 são permitidos(passam), e, valores iguais ou começados com 0,1,3,5,7,8,9 são impedidos(não passam), mas, alguns dados começados com 2,4, e 6 são permitidos(queria que fossem impedidos), seria permitido por exemplo: 2=013, 4,56, 4elementos, 2 Homens e Meio... <?php
//6 2 será valor a ser filtrado, poderia vir via GET ou POST, mas, varias entradas além dos valores....
$ValorRecebido = '6 2';
//valores passáveis entre parentes
$ValorPermitido = array(2, 4, 6, abacaxi);

if(in_array($ValorRecebido, $ValorPermitido))

//Se valores permitidos ai
{
$ValorFinal=$ValorRecebido.' passou';
}
//Se valores não permitidos
else
{$ValorFinal='nenhum valor válido';};

echo $ValorFinal;
// Exibi o resultado: 6 2 passou
?>

Código de exemplo 1, simples

<?php
//34 será valor a ser filtrado, poderia vir via GET ou POST
$ValorRecebido = '34';
//valores passáveis entre parentes
$ValorPermitido = array('2', '4', '6', abacaxi);

if(in_array($ValorRecebido, $ValorPermitido))

//Se valores permitidos ai
{
$ValorFinal=$ValorRecebido;
}
//Se valores não permitidos
else
{$ValorFinal='nenhum valor válido';};

echo $ValorFinal;
// Exibi o resultado: nenhum valor válido
?>


Se, no início do código eu tivesse usado $ValorRecebido = '4'; o que seria exibido seria apenas o número 4 que é um valor permitido, como no exemplo abaixo onde usei um valor permitido, não número, mas é permitido.

Código de exemplo 2, simples

Neste código apenas tem um valor que será aceito

<?php
//valor a ser filtrado será abacaxi
$ValorRecebido = 'abacaxi';
//valores passáveis entre parentes
$ValorPermitido = array('2', '4', '6', abacaxi);

if(in_array($ValorRecebido, $ValorPermitido))

//Se valores permitidos ai
{
$ValorFinal=$ValorRecebido;
}
//Se valores não permitidos
else
{$ValorFinal='nenhum valor válido';};

echo $ValorFinal;
// Exibi o resultado: abacaxi
?>

Código de exemplo 3

Esse é um pouco mais incrementado, fica mais complicado, mas dá mais possibilidades e permite que você possa entender um pouco mais o funcionamento do script, ele pode mostrar uma mensagem avisando que valor ou palavra é válida ou inválida

<?php
//valor a ser filtrado será laranja
$ValorRecebido = 'laranja';
//valores passáveis entre parentes
$ValorPermitido = array('2', '4', '6', abacaxi);

if(in_array($ValorRecebido, $ValorPermitido))

//Se valores permitidos ai
{
$ValorFinal='Parabéns, o valor "'.$ValorRecebido.'" é Válido';
}
//Se valores não permitidos
else
{$ValorFinal='Sinto muito, o valor "'.$ValorRecebido.'" é inválido';};

echo $ValorFinal;
// Exibi o resultado: Sinto muito, o valor "laranja" é inválido
?>