Glosario de funciones

Iniciado por -Riven-Ward-, 5 Abril 2005, 22:36 PM

0 Miembros y 1 Visitante están viendo este tema.

-Riven-Ward-

Buenas.

Les comentaré una idea que tuve ayer por la noche ;D.

Se me ocurrió un post, en que cada uno fuera pusiendo las funciones que ha hecho (en PHP o en ASP). Siguiendo un esquema, explicando para que sirven y como se usan. Así, cuando un usuario quiera saber si existe tal función, en vez de preguntar, primero se pasa por aquí, ve si alguien la puso, y si no está, postea (esa es la idea, no creo que mucha gente lo haga, pero en fin xD).

El esquema a seguir sería el siguiente:

CitarNombre de la función:
Descripción:
Lenguaje:
Código:
Explicación:
Modo de uso:

Claro, pueden saltar el último paso, "Explicación", y poner la explicación junto con el código :).

Aquí les dejo dos, que fueron las primeras que encontré:

Nombre de la función: npar(int num)
Descripción: Dado num, devuelve si es o no par.
Lenguaje: PHP

<?php
function npar ($num) {
$num = (int)$num;
if (
$num == 0) {
echo 
"El número ".$num." es par";
}
else {
echo 
"El número ".$num." no es par";
}
}
?>


Explicación: Bueno, básicamente primero se declara la función, que tendrá como parámetro $num, que es el número que queremos saber si es par o no. Luego, mediante el cast (int) hacemos que si la variable contiene letras también, se las saque, para los tramposillos :). Bien, ahora, como sabrán, para saber si un número es par, debemos dividirlo por dos. Si el resto es 0, entonces es par. Y eso es justamente lo que hace el if. Lo que hace el operador matemático % es dividir por X número y devolver el resto. Entonces, vemos si el resto entre $num y 2 es igual a 0. Si lo es, devolvemos que el número es par. Si no, devolvemos que no lo es :).
Modo de uso: Simple.

<?php
[...]
npar ("23"); //En vez de 23 ponen su número
?>


Bueno, cambio de planes xD, la otra función se las pongo después porque me mandaron a estudiar.

Recuerden, ASP o PHP, y funciones, no scripts.

Salu2!
Usuario Banneado

eLank0

#1
EnaZ!!!

Nombre de la función: protege(string)

Descripción: Dada una variable, la protege de código HTML malicioso como ' etc..

Lenguaje: PHP

<?php
function protege($texto) {

$texto str_replace("'""\'"$texto);

$texto htmlspecialchars ($texto);

$texto htmlentities ($texto);

$texto trim ($texto); 

return $texto;

}
?>


Primero declaramos la función, que contendrá como parámetros una string.
En la primera línea, substituimos todas las apariciones de ' por una \.
En las 2 líneas siguientes, substituimos todo código HTML por texto equivalente por ejemplo:

Citar< == &lt;

En la última línea qliminamos todos espacios en blanco al principio y al final de la string.

Modo de uso:

<?php
$variable 
protege($variable);
?>


Recomendaciones: Es ideal para proteger datos de los formularios.

Salu2!

Azielito

Nombre de la función: Fecha XD
Descripción:Muestra la fecha en formato Nombre_dia #d de mes de año
Viernes 08 de Abril de 2005
Lenguaje: PHP
Código:<?php function fecha(){
$dia = array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado");
$mes = array("0","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$dian date("w");
$mesn date("n");
$fecha $dia[$dian];
$fecha .= " ";
$fecha .= date("d");
$fecha .= " de ";
$fecha .= $mes[$mesn];
$fecha .= " de ";
$fecha .= date("Y");
echo 
$fecha;
}
?>

Explicación: Pues creo que no hace falta explicacion, nada mas hacer referencia a estas lineas
$dian = date("w"); // el parametro "w" da el dia sin ceros al principio "1,2,3" en lugar de "01,02,03"
$mesn = date("n"); // el parametro "n" da el mes sin ceros >.<
Modo de uso:
<?php
// puedes incluirlo en un archivo de tomarlo de ahí =P
feacha(); ?>


Comentarios del autor: Pues, que es facil XD pero, espero que les sea de utilidad =), pondre algunas mas que he hecho XD

Azielito

Nombre de la función: Fecha #
Descripción:Pasa la fecha del formato año-mes-dia ( 2004-04-23 ) que es el formato que se guarda en campos tipo date mysql serevr x) a formato dia/mes/año
o sea, pasa de:
2004-04-23
a
08/04/2005
Lenguaje: PHP
Código:

<?php function fechaN($fecha){
$fecha explode("-",$fecha]);
echo $fecha['2']."/".$fecha['1']."/".$fecha['0'];
?>

Modo de uso:

<?php
// puedes incluirlo en un archivo de tomarlo de ahí =P
feachaN("2004-04-23"); ?>


Comentarios del autor: Puedes usarla en conjunto con bases de datos, de hecho la hice para usarla asi XD, se caca el valor del campo y lo muestra de una forma bonita. la pasa a la fecha en español en numeros =P

Azielito

Nombre de la función:FreeStyle>_<
Descripción:Inserta el archivo de estilos (.CSS)
Lenguaje:PHP
Código:<?php function estilo($archivo){
$archivo strtolower($archivo);
if($archivo==""){
echo "<font color=\"#FF0000\" size=\"2\">Debes especificar la ubicaci&oacute;n del archivo de estilo.</font>";
exit;
}
if(!strpos($archivo,".css")){
echo "<font color=\"#FF0000\" size=\"2\">El archivo debe tener extenci&oacute;n <b>.css</b></font>";
}
echo "<link href=\"$archivo\" rel=\"stylesheet\" type=\"text/css\">";
?>

Explicación:Valida, en primer instancia, que tenga una cadena, despues verifica que el archivo es válido, o sea que tenga extención CSS =)
Modo de uso:
<?php
estilo
("style.css");
?>


Puede servirte si tienes una web de esas que dice que construyas tu sitio en 3 pasos XD, o, tambien para hacer una web tipo "camaleon" o algo asi =P

Cuantico

Nombre de la funcion: Hubo Error
Descripcion: Buena para formularios, si hubo un error puedes llamar a la funcion con tu mensaje.. para que advierta...

codigo:

<?php
function comprobar($mensaje) {
echo 
'<script language="javascript">alert("'.$mensaje.'\n\nError"); javascript:history.back(1)</script>';
exit;
}

?>

Explicacion. Con el mensaje. te da un alert y luego q le das a ok, te devuelve al formulario.

modo de uso:


<?php
comprobar
('elhacker.net te da la bienvenida');
?>


:)

Morris

Nombre de la función:Nombres Aleatorios
Descripción:Genera nombres aleatorios
Lenguaje:ASP


' Funcion para generar nombres aleatorios
Function GeneraNombreRandom(strNombreArchivo)
Dim strFecha
'Quita caracteres ilegales
strFecha = Year(Now) & String(2 - Len(Month(Now)), "0") & Month(Now) & String(2 - Len(Day(Now)), "0") & Day(Now)
Randomize
'Regresa
GeneraNombreRandom = strNombreArchivo & strFecha & "_" & CStr(Round(Rnd * 1000000))
End Function
Carta Poder
Ejemplos
Memorandum
Carta Recomendacion
www.ejemplode.com/12-clases_de_espanol/

Zagalet

#7
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);
?>

Zagalet

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_fecha82); 
$mes substr ($cadena_fecha52); 
$ano substr ($cadena_fecha04); 

$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_fecha82); 
$mes substr ($cadena_fecha52); 
$ano substr ($cadena_fecha22); 
$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_fecha82); 
$mes substr ($cadena_fecha52); 
$ano substr ($cadena_fecha04); 

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_fecha82); 
$mes nombre_mes(substr ($cadena_fecha52)); # Funcion requerida nombre_mes($mes) 
$mes substr ($mes03);
$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 ($fecha52);
$d1=substr ($fecha82); 
$a1=substr ($fecha04);
$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 ($fecha152);
$d1=substr ($fecha182); 
$a1=substr ($fecha104);

//$fecha2
$HH2=0;
$MM2=0;
$SS2=0;
$m2=substr ($fecha252);
$d2=substr ($fecha282); 
$a2=substr ($fecha204);

$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 ($fecha152);
$d1=substr ($fecha182); 
$a1=substr ($fecha104);

$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 ($date52);
$dia=substr ($date82); 
$any=substr ($date04);
$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 ($fecha152); 
$d1=substr ($fecha182); 
$a1=substr ($fecha104); 

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 ($fecha52);
$d1=substr ($fecha82); 
$a1=substr ($fecha04); 
$correcto=checkdate($m1,$d1,$a1);

return 
$correcto;
}

?>





Zagalet

#9
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
?>