Este codigo se encarga de validar una fecha marcando los errores que se encuentren y corrigiendo formatos por ejemplo en lo personal prefiero que las fechas se escriban en un campo de texto en lugar de utilizar campos select ya que se me facilita mas escribir '4/1/5' que estar utilizando campos de selección y este código se encarga de corregir lo que ingresé en el caso de este ejemplo me devolverá '2005-01-04' ya que la función devuelve la fecha lista para guardarse en una base de datos. Bueno los archivos se explican solos espero los estudien y si encuentran fallas por favor mencionenlas para corregirlas o cualquier duda tambien con gusto se les atiende. Cuidense y saludos a todos.
funciones_de_cadena.php
Código PHP:
<?php
/************************************************************************************************
Autor: Erik Francisco Torres Zavala
Fecha de Creación: 01-03-07
Fecha de Última Modificación: 25-03-09
Descripción del Archivo: Estas funciones poseen un nombre un tanto descriptivo conforme a lo que
realiza cada una de ellas
************************************************************************************************/
/*----Esta función se encarga de eliminar todos los caracteres que sean igual a la variable----*/
/*-$caracter_a_eliminar y se encuentren dentro de la cadena que se paso en la variable $cadena-*/
function suprime_caracteres( $cadena, $caracter_a_eliminar )
{
$corregida = str_replace( $caracter_a_eliminar, '', $cadena );
return $corregida;
}
/*//////////////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
/*---Esta función pinta del color especificado en la variable $color y en negritas la cadena---*/
/*--------------------------------pasada en la variable $cadena--------------------------------*/
function colorea_cadena( $cadena, $color )
{
$con_color = '<font color="'.$color.'"><b>'.$cadena.'</b></font>';
return $con_color;
}
/*//////////////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
/*---La siguiente función lo que hace es examinar la cadena pasada en la variable $cadena y----*/
/*-devolver la misma pero sólo con números y o letras dependiendo de lo que se halla indicado--*/
/*--en la variable $validar la cual debe tener como valor 'letras', 'números' o 'let_y_num'----*/
function extraer_letras_y_o_numeros( $cadena, $validar )
{
// Creamos 2 array con los caracteres validos correspondientes
$abecedario = array( 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' );
$numeros = array( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' );
if( $validar == 'letras' )
$validos = $abecedario;
else
{
if( $validar == 'numeros' )
$validos = $numeros;
else
$validos = array_merge( $abecedario, $numeros );
}
$corregida = ''; // Creamos la variable que contendá la cadena corregida
for( $e = 0; $e < strlen( $cadena ); $e++ ) // Recorremos cada caracter de nuestra cadena
{
foreach( $validos as $c_valido )
{
// Si el caracter es valido lo agregramos a nuestra cadena
if( substr( $cadena, $e, 1 ) == $c_valido )
{
$corregida .= substr( $cadena, $e, 1 );
continue1; // Continuamos con el siguiente caracter a validar
}
}
}
return $corregida;
}
/*//////////////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
?>
ejemplo.php
Código PHP:
<?php
header('Content-Type: text/html; charset=utf-8');
if( $_POST[ 'submit' ] )
{
include( 'v_fecha.php' ); // Incluimos las funciones de validación de fecha
$f = valida_fecha( $_POST[ 'fecha' ], '', 1 ); // evaluamos la fecha
if( $f[0] ) // Si se encontraron errores
echo "Por favor ingrese una fecha correcta: ".$f[1]."<p/>";
else // Si la fecha es correcta mostramos como se va a guardar en la bd
{
echo $f[1]."<p/>"; // aquí hacemos lo necesario para guardar en la bd
}
}
?>
<html>
<head>
<title>Ejemplo de validación de fecha</title>
</head>
<body>
<form action="ejemplo.php" method="post">
Ingrese la fecha a evaluar: <input type="text" name="fecha">
<input type="submit" name="submit" value="Evaluar">
</form>
</body>
</html>