lo he provado y me anda perfecto ... fijate esto , lo he acomodado un poco mejor para ver si lo llegas a ver mas facil:
Código PHP:
<?php
function val_car($i,$esp = 1){
if($esp = 1){
$i_val = preg_replace("/[^a-zA-Z\sñÑáéíóúÁÉÍÓÚ]/", "", $i);
if($i !== $i_val){
return false;
}else{return true;}
}
if($esp = 2){
$i_val = preg_replace("/[^0-9]/", "", $i);
if($i !== $i_val){
return false;
}else{return true;}
}
}
$a = 'hola muñdó'; // los caracteres ñ y ó si estan permitidos por lo tanto devolvera true.
$val_a = val_car($a,1);
$b = 'hola$$muñdo'; // los caracteres "$$" no estan permitidos por lo cual $b devolvera false.
$val_b = val_car($b,1);
if($val_a == false){echo '"$a" contiene caracteres no permitidos<br/>';}else{echo '"$a" no presenta problemas<br/>';}
if($val_b == false){echo '"$b" contiene caracteres no permitidos<br/>';}else{echo '"$b" no presenta problemas<br/>';}
?>
cualquier cosa me comentas , saludos.