Funciones útiles en PHP

En esta oportunidad deseo compartir algunas funciones en PHP que me ha sido de ayuda en los últimos 30 proyectos que he realizado.  Estas funciones ha sido mejorada con el tiempo, entre ellas hay algunas que he encontrado por internet y que he mejorado, así como varias que he creado por mí.

adaptar_vdecimal($monto): Con esta función logro transformar como por ejemplo: de 1.450.000,00 a 1450000.00 formato adecuado para guardar en un campo decimal mysql.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function adaptar_vdecimal($monto){
$cantchar=strlen($monto);
$cantptos=explode(".",$monto);
$vercomas=explode(",",$monto);
if((strlen($cantptos[1])>2)||(count($vercomas)>1)){
if($cantchar>4){
if(count($vercomas)>0){ $parte_entera=$vercomas[0]; $parte_decimal=$vercomas[1];
}else{ $parte_entera=$monto; $parte_decimal='00'; }
if($parte_decimal=="") $parte_decimal="00";
$monto=str_replace(".","",$parte_entera).".".$parte_decimal;
}
}elseif(strlen($cantptos[1])==0) $monto.=".00";
return $monto;
}

suma_dias($fecha,$dias): A una fecha en formato Y-m-d, le suma la cantidad de días requerido, lo que retorna la fecha resultante al sumar los días.

1
2
3
4
5
function suma_dias($fecha,$dias){
$nuevafecha = strtotime('+'.$dias.' day',strtotime($fecha));
$nuevafecha = date('Y-m-j',$nuevafecha );
return $nuevafecha;
}

resta_dias($fecha,$dias): Igual que la anterior, pero en vez de sumar, resta

1
2
3
4
5
function resta_dias($fecha,$dias){
$nuevafecha = strtotime('-'.$dias.' day',strtotime($fecha));
$nuevafecha = date('Y-m-j',$nuevafecha );
return $nuevafecha;
}

n_dias($fecha1,$fecha2=””): Retorna la diferencia de días entre dos fechas, si el parametro $fecha2 es vacío toma en cuenta la fecha actual.

1
2
3
4
5
6
7
function n_dias($fecha1,$fecha2=""){
if($fecha2=="") $fecha2=date('Y-m-d');
$fecha1.=" 00:00:00";
$segundos=strtotime($fecha1) - strtotime($fecha2);
$diferencia_dias=intval($segundos/60/60/24);
return $diferencia_dias;
}

calculo_edad($fecha): Calcular la edad de una persona indicando la fecha de nacimiento con php.

1
2
3
4
5
function calculo_edad($fecha){
list($d,$m,$Y) = explode("-",$fecha);
if(date("md")<$m.$d) $edad=date("Y")-$Y-1; else $edad=date("Y")-$Y;
return $edad;
}

generar_password(): Generar una contraseña o password seguro de forma aleatoria.

1
2
3
4
5
6
7
8
function generar_password(){
$charl= substr(str_shuffle('abcdefghjkmnpqrstuvwxyz'), 0, 3);
$charc= substr(str_shuffle('-+()=;:_'), 0, 1);
$char = substr(str_shuffle('aAbBcCdDeEfFgGhHjGkKmOnoPpqQrstSuvWwxZyz'), 0, 2);
$charM= substr(str_shuffle('ABCDEFGHJKMNOPQRSTUVWYZ'), 0, 1);
$str = rand(1, 7) . $charM . rand(1, 7).$charc .$charl;
return $str;
}

invertir_fecha($fecha): Si indica una fecha en formato dd-mm-yyyy, la devuelve en formato yyyy-mm-dd. En caso que indique una fecha en formato dd-mm-yyyy, devuelve la fecha en formato yyyy-mm-dd

1
2
3
4
5
6
7
8
function invertir_fecha($fecha){
$separar=explode("-",$fecha);
if(count($separar)<2){
$separar=explode("/",$fecha);
}
$fdate = $separar[2]."-".$separar[1]."-".$separar[0];
return $fdate;
}

verificar_password($password): Verificar con php si una contraseña o password es seguro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function verificar_password($password){
$tamanio=strlen($password);
if(($tamanio>6)&&($tamanio<17)){
$error=1;
for($i=0;$i<$tamanio;$i++){
if(eregi($password[$i],"abcdefghjkmnpqrstuvwxyz")){
$error=0;
break;
}
}
if($error==1){
return "debe contener al menos una letra minúscula";
}
$error=1;
$error=1;
for($i=0;$i<$tamanio;$i++){
if(eregi($password[$i],"0123456789")){
$error=0;
break;
}
}
if($error==1){
return "debe contener al menos un caracter númerico";
}
$error=1;
return "";
}else return "debe contener mínimo 7 caracteres y máximo 16";
}

comprobar_email($email): Comprobar si un correo electrónico cumple con el formato correcto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function comprobar_email($email){
$mail_correcto = 0;
//compruebo unas cosas primeras
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,""")) && (!strstr($email,"\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,"
.")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminaci�n del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"
@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "
@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
return $mail_correcto;
}

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*