|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / PHP / Re: Glosario de funciones
|
en: 20 Mayo 2005, 13:24 pm
|
Aqui tienes la funcion connect, puedes hacer la conexión al inicio del script (head) y desconexión al final (footer) Yo normalmente solo hago la conexión (siempre en el head) ya que la desconexión de mysql la puedes forzar durante el script (para conectar a otra BDD por ejemplo) y hacerla en el footer no tiene mucho sentido ya que el servidor te hace la desconexión automaticamente al finalizar el script. <?php
function connect($accion){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Conecta con la BDD MySql
// variables servidor $base_de_datos="nombre_de_la_bdd"; $host_serv="localhost"; $user_serv="usuario"; $pass_serv="password";
switch ($accion) { case 'on':{ //conecto con el servidor y selecciono la base de datos a utilizar $connect=mysql_connect($host_serv,$user_serv,$pass_serv); mysql_select_db($base_de_datos,$connect); //Comprobamos que se ha establecido la conexion if (!$connect) { print ("Error al establecer conexión con el servidor\n"); exit; } } break; case 'off':{ mysql_close(); }break; } } ?>
|
|
|
2
|
Programación / PHP / Re: Glosario de funciones
|
en: 18 Mayo 2005, 18:41 pm
|
Nombre de la función: Letra NIF Descripción: Devuelve la letra del Nif a partir del numero de DNI Lenguaje: PHP <?php function letra_nif($dni){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve la letra del NIF a partir del DNI
$valor= (int) ($dni / 23); $valor *= 23; $valor= $dni - $valor; $letras= "TRWAGMYFPDXBNJZSQVHLCKEO"; $letraNif= substr ($letras, $valor, 1); return $letraNif; } ?>
Explicación:Para comprobar que el numero de DNI introducido es correcto, se comprueba con su correspondiente letra o para obtener automaticamente la letra del NIF a partir del DNI Modo de uso: Le pasas la cadena de numeros y te devuelve la letra
|
|
|
3
|
Programación / PHP / Re: Glosario de funciones
|
en: 18 Mayo 2005, 18:31 pm
|
Nombre de la función: Crear select Descripción: Te crea un select de un formulario a partir de unos datos extraidos de una BDD MySql. Se da por supuesta la conexion a la BDD antes de llamar a la función, en caso contrario es necesario agregar las lineas de codigo necesarias para realizar el connect Lenguaje: PHP con MySql <?php function crear_select($tabla,$campo_mostrar,$campo_opcional,$campo_valor,$name,$selected) /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // crea un select para formularios con los datos de una tabla de una BDD MySql
# $tabla -> nombre de la tabla de la bdd # $campo_mostrar -> nombre del campo de la bdd cuyo valor sera el que se muestra al desplegar el select # $campo_opcional -> por si queremos mostrar la combinacion de dos valores ej. nombre + apellido. Si ninguno =''; # $campo_valor -> nombre del campo que servirá para darle valor a cada option del select. Normalmente el index # $name -> nombre e id que le daremos al select # $selected -> valor en caso de que haya una opcion marcada para dejar selecionado
{ $out='<select name="'.$name.'" id="'.$name.'">'; if (!isset ($selected)) $out.='<option value="" '.$seleccionado.'>'.$tabla.'</option>'; $sql='SELECT * FROM '.$tabla.' ORDER BY '.$campo_mostrar.' ASC'; $result=mysql_query($sql); while ($row=mysql_fetch_array($result)) { if ( ($row[$campo_valor]) == ($selected) ) $seleccionado='selected'; else $seleccionado=''; $out.='<option value="'.$row[$campo_valor].'" '.$seleccionado.'>'.$row[$campo_mostrar]; if ($campo_opcional!='') $out.=' '.$row[$campo_opcional]; $out.='</option>'; } $out.='</select>'; return $out; } ?>
Explicación:A veces en un formulario es necesario crear un select entre las opciones sacadas de una BDD, esta funcion te crea el select. Modo de uso: Le pasas los parametros necesarios que hay explicados en la cabecera de la función y se imprime la salida. Ej: <?php connect('on'); //llamo a una funcion que me conecta con la BDD echo crear_select('coches','modelo','marca','id_coches','modelo_de_coche',''); connect('off'); //llamo a una funcion que me desconecta de la BDD ?>
|
|
|
4
|
Programación / PHP / Re: Glosario de funciones
|
en: 18 Mayo 2005, 18:12 pm
|
Nombre de la función: Colección de funciones de fechas Descripción: Leer las cabeceras de cada funcion para saber descripcion y modo de uso. Hay funciones que requieren alguna de las otras para ejecutarse Lenguaje: PHP <?php /*********************************************************** COLECCION DE FUNCIONES DE FECHAS, OPERACIONES ENTRE FECHAS, FORMATOS DE FECHAS.... etc Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com ************************************************************/
function fecha_actual($fecha_actual){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Obtener la fecha actual de la forma de BDD aaaa-mm-dd
$fecha_actual = time(); $dia = date("d", $fecha_actual); $mes = date("m", $fecha_actual); $ano = date("Y", $fecha_actual); $fecha_actual=$ano.'-'.$mes.'-'.$dia; return $fecha_actual; } //************************************************************ function hora_actual($hora_actual){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Obtener la hora actual (24h) de la forma HHMM
$fecha_actual = time(); $hora = date("H", $fecha_actual); $minutos = date("i", $fecha_actual); $hora_actual=$hora.$minutos; return $hora_actual; } //************************************************************ function fecha_barras($cadena_fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // convertir una fecha de la forma aaaa-mm-dd a dd/mm/aaaa
$dia = substr ($cadena_fecha, 8, 2); $mes = substr ($cadena_fecha, 5, 2); $ano = substr ($cadena_fecha, 0, 4);
$cadena_fecha=$dia.'-'.$mes.'-'.$ano; if ($dia){ return $cadena_fecha; } } //************************************************************ function fecha_barras_corta($cadena_fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // convertir una fecha de la forma aaaa-mm-dd a dd/mm/aa
$dia = substr ($cadena_fecha, 8, 2); $mes = substr ($cadena_fecha, 5, 2); $ano = substr ($cadena_fecha, 2, 2); $cadena_fecha=$dia.'/'.$mes.'/'.$ano; if ($dia){ return $cadena_fecha;} } //************************************************************ function nombre_mes($mes){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve el nombre del mes a partir de su numero (de 1 a 12) switch ($mes) { case 1: $mes="Enero"; break; case 2: $mes="Febrero"; break; case 3: $mes="Marzo"; break; case 4: $mes="Abril"; break; case 5: $mes="Mayo"; break; case 6: $mes="Junio"; break; case 7: $mes="Julio"; break; case 8: $mes="Agosto"; break; case 9: $mes="Septiembre"; break; case 10: $mes="Octubre"; break; case 11: $mes="Noviembre"; break; case 12: $mes="Diciembre"; break; }
return $mes; } //************************************************************ function formato_fecha($cadena_fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // convertir una fecha de la forma aaaa-mm-dd a (dia de mes de año)
$dia = substr ($cadena_fecha, 8, 2); $mes = substr ($cadena_fecha, 5, 2); $ano = substr ($cadena_fecha, 0, 4);
switch ($mes) { case 1: $mes="enero"; break; case 2: $mes="febrero"; break; case 3: $mes="marzo"; break; case 4: $mes="abril"; break; case 5: $mes="mayo"; break; case 6: $mes="junio"; break; case 7: $mes="julio"; break; case 8: $mes="agosto"; break; case 9: $mes="septiembre"; break; case 10: $mes="octubre"; break; case 11: $mes="noviembre"; break; case 12: $mes="diciembre"; break; }
if ($dia<10) $dia = substr ($dia, -1); // mostramos el dia sin el cero delantero
$cadena_fecha=$dia.' de '.$mes.' de '.$ano; if ($dia){ return $cadena_fecha; } } //************************************************************ function fecha_corta($cadena_fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // convertir una fecha de la forma aaaa-mm-dd a fecha de la forma // (dd nombre_mes_corto). Ej: "25 Dic"
$dia = substr ($cadena_fecha, 8, 2); $mes = nombre_mes(substr ($cadena_fecha, 5, 2)); # Funcion requerida nombre_mes($mes) $mes = substr ($mes, 0, 3); $dia=(int)$dia; $cadena_fecha=$dia.' '.$mes; if ($dia){ return $cadena_fecha; } } //************************************************************ function calcula_numero_dia_semana($dia,$mes,$ano){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve el número de día de la semana (1=lunes, 7=domingo...) // a partir de una fecha dada, pasandole el dia, el mes y el año
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); if ($numerodiasemana == 0) $numerodiasemana = 6; else $numerodiasemana--; return $numerodiasemana; } //************************************************************ function dia_semana($dia,$mes,$ano){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve el día (primera letra) de la semana a partir // de una fecha dada, pasandole el dia, el mes y el año
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano)); if ($numerodiasemana == 0) $numerodiasemana = 6; else $numerodiasemana--; $numerodiasemana++; switch ($numerodiasemana) { case "1": return 'L'; break; case "2": return 'M'; break; case "3": return 'X'; break; case "4": return 'J'; break; case "5": return 'V'; break; case "6": return 'S'; break; case "7": return 'D'; break; } } //************************************************************ function ultimodia($mes,$ano){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve cual es el ultimo día de un mes (28, 29, 30 o 31) // a partir del numero de mes y el año
$ultimo_dia=28; while (checkdate($mes,$ultimo_dia + 1,$ano)){ $ultimo_dia++; } return $ultimo_dia; } //************************************************************ function fecha_segundos($fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve la cadena en forma de segundos a partir de una fecha de la forma aaaa-mm-dd
$HH1=0; $MM1=0; $SS1=0; $m1=substr ($fecha, 5, 2); $d1=substr ($fecha, 8, 2); $a1=substr ($fecha, 0, 4); $fecha_out = mktime($HH1,$MM1,$SS1,$m1,$d1,$a1); //HH,MM,SS,MM,DD,AA
return $fecha_out; } //************************************************************ function operacion_fechas($fecha1,$operacion,$fecha2){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve los dias (puede devolver horas o minutos tambien) // a partir de dos fechas de la forma aaaa-mm-dd y un operador artmetico ( "+" o "-" ) // Operaciones: $operacion (+ o -) suma o resta // datos $fecha recibida en tipo mysql aaaa-mm-dd
//$fecha1 $HH1=0; $MM1=0; $SS1=0; $m1=substr ($fecha1, 5, 2); $d1=substr ($fecha1, 8, 2); $a1=substr ($fecha1, 0, 4);
//$fecha2 $HH2=0; $MM2=0; $SS2=0; $m2=substr ($fecha2, 5, 2); $d2=substr ($fecha2, 8, 2); $a2=substr ($fecha2, 0, 4);
$fecha1 = mktime($HH1,$MM1,$SS1,$m1,$d1,$a1); //HH,MM,SS,MM,DD,AA $fecha2 = mktime($HH2,$MM2,$SS2,$m2,$d2,$a2); //HH,MM,SS,MM,DD,AA
if ($operacion=='+') $operacion=$fecha1+$fecha2; if ($operacion=='-') $operacion=$fecha1-$fecha2;
$minutos=(int)($operacion/(60)); $horas=(int)($operacion/(60*60)); $dias=(int)($operacion/(60*60*24));
return $dias; //La usamos para que devuelva dias, // pero lo dejo preparado para que devuelva horas y minutos } //************************************************************ function operacion_dias($fecha1,$operacion,$dias){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Partiendo de una fecha de la forma aaaa-mm-dd, de un numero X // de dias y un operador artmetico ( "+" o "-" ) te devuelve la fecha resultado // a la que le hemos sumado o restado X dias // Operaciones: $operacion (+ o -) suma o resta // datos $fecha1 recibida en tipo mysql aaaa-mm-dd
//$fecha1 $HH1=0; $MM1=0; $SS1=0; $m1=substr ($fecha1, 5, 2); $d1=substr ($fecha1, 8, 2); $a1=substr ($fecha1, 0, 4);
$fecha1 = mktime($HH1,$MM1,$SS1,$m1,$d1,$a1); //HH,MM,SS,MM,DD,AA $dias=$dias*24*3600; //a segundos if ($operacion=='+') $operacion=$fecha1+$dias; if ($operacion=='-') $operacion=$fecha1-$dias;
$dia = date("d", $operacion); $mes = date("m", $operacion); $ano = date("Y", $operacion); $fecha=$ano.'-'.$mes.'-'.$dia;
return $fecha; //Devuelve la fecha a la que le hemos sumado o restado x dias } //************************************************************ function calcular_dias_fin_semana($fecha1,$fecha2) { /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Devuelve el numero de dias que son sabado o domingo entre // la fecha1 y la fecha2 (las dos de la forma aaaa-mm-dd)
$total_dias=0; # se requiere la funcion operacion_dias($fecha1,$operacion,$dias) for ( $date=$fecha1; $date<=$fecha2; $date=operacion_dias($date,'+',1) ) { $mes=substr ($date, 5, 2); $dia=substr ($date, 8, 2); $any=substr ($date, 0, 4); $letra_dia=dia_semana($dia,$mes,$any); if ( ($letra_dia=='S') or ($letra_dia=='D') ) //comprobamos si fin de semana $total_dias++; }
return $total_dias; } //************************************************************ function operacion_anys($fecha1,$operacion,$anys){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Partiendo de una fecha de la forma aaaa-mm-dd, de un numero // X de años y un operador artmetico ( "+" o "-" ) te devuelve la fecha resultado // a la que le hemos sumado o restado X años // Operaciones: $operacion (+ o -) suma o resta // datos $fecha1 recibida en tipo mysql aaaa-mm-dd
//$fecha1 $m1=substr ($fecha1, 5, 2); $d1=substr ($fecha1, 8, 2); $a1=substr ($fecha1, 0, 4);
if ($anys<1) { $meses=(int)($anys*12); if ($operacion=='+') { $m1=$m1+$meses; if ($m1>12) { $m1=($m1-12); $a1++; } } if ($operacion=='-') { $m1=$m1-$meses; if ($m1<=0) { $m1=(12-$m1); $a1--; } } } else { if ($operacion=='+') $a1=$a1+$anys; if ($operacion=='-') $a1=$a1-$anys; }
if ( (!checkdate($m1,$d1,$a1)) and ($d1==29) and ($m1==2) ) $d1=28; //comprobacion de año bisiesto
if ($a1<10) $a1='0'.(int)$a1; if ($m1<10) $m1='0'.(int)$m1; $fecha=$a1.'-'.$m1.'-'.$d1;
return $fecha; //Devuelve la fecha a la que le hemos // sumado o restado x años } //************************************************************ function comprobar_fecha($fecha){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // Le pasamos una fecha de la forma aaaa-mm-dd y la devuelve si es correcta o devuelve 0 si es una fecha incorrecta o imposible
$correcto=0; $m1=substr ($fecha, 5, 2); $d1=substr ($fecha, 8, 2); $a1=substr ($fecha, 0, 4); $correcto=checkdate($m1,$d1,$a1);
return $correcto; }
?>
|
|
|
5
|
Programación / PHP / Re: Glosario de funciones
|
en: 18 Mayo 2005, 17:24 pm
|
Nombre de la función: Formato links Descripción: Convertir una url o e-mail de un texto en enlace Lenguaje: PHP Código:<?php function formato_links($chk_str){ /* Autor: Dani Mayandía 'Zagalet' (2005) www.zagalet.com correo@zagalet.com */ // convertir una cadena a un enlace web o mail
$a = explode(" ", $chk_str); for($i=0; $i<count($a); $i++){ $b = str_replace("www.", "http://www.", $a[$i]); $b = str_replace("http://http://", "http://", $b); $pos = strpos($b, "http://"); if ($pos === false) { // ojo: 3 signos = $url_found = false; } else { $url_found = true; } if($url_found){ $a[$i] = "<a href='$b' target=_blank>$chk_str</a>"; } $pos = strpos($b, "@"); if($pos === false){ $email = false; } else { $email = true; } if($email){ $a[$i] = "<a href='mailto:$b'>$b</a>"; } } $chk_str = implode(" ", $a); return $chk_str; } ?> Explicación:Cualquier texto que imprimas donde haya una url o una dirección de correo electónico aparecerá como un enlace Modo de uso:Simplemente se llama a la función pasandole la cadena de texto: <?php echo formato_links($texto); ?>
|
|
|
|
|
|
|