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 % 2 == 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!
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< == <
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!
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
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
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ón del archivo de estilo.</font>";
exit;
}
if(!strpos($archivo,".css")){
echo "<font color=\"#FF0000\" size=\"2\">El archivo debe tener extenció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
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');
?>
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
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);
?>
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;
}
?>
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
?>
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
Podrias colaborar tambien con la que tenes de connect();
Muy buenas, las funciones de la fecha....
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;
}
}
?>
Nombre: Delete a line from file.
Lenguaje: PHP
Uso:
<?php delete_from_file('linea a borrar'); ?>
Por ejemplo si tenemos una lista de serials (que es para lo q la hice) y los tenemos todos en un archivo, y queremos q cada uno cada vez q se use, sea borrado del archivo.
<?php
$textfile = "keys.txt";
function delete_from_file($key) {
global $textfile;
$newline = 'used:'.$key.'';
$handle = fopen($textfile, "r");
while(!feof($handle)) {
$line = fgets($handle, 1024);
$file = eregi($key,$line);
if ($file) {
if(!empty($line)){
$data=file($textfile);
$size=count($data);
$fp = fopen($textfile, "w");
for ($n=0; $n < $size; $n++) {
if ($data[$n] != $key) {
fputs($fp , $data[$n]);
}
}
}
}
}
}?>
Funcion simple que escribe en un archivo noticia.txt
<?php
function Escribir ($Noticia) {
/* Funcion que escribe en un archivo, atentamente SeniorX*/
$ElArchivo = 'noticias.txt';
$Abrir = fopen ($ElArchivo, "a+");
if ($Abrir) {
fwrite ($Abrir, "$Noticia\n");
fclose ($Abrir);
echo "<b>La noticia fue agregada<b>";
}else {
echo "<b>Algo paso y no se pudo agregar la noticia<b>";
}
}?>
Explicacion
<?php
Escribir ("La noticia que quieres agregar");
Ahora leamos
<?php
function LeerNoticia () {
/* Funcion que lee desde un archivo, atentamente SeniorX*/
$ElArchivo = "noticias.txt";
$Abrir = fopen ($ElArchivo, "a");
if ($Abrir) {
$Data = file ("$ElArchivo");
$Contenido = array('$Titulo', '$Noticia');
for ($n = 0; $n < count ($Data); $n++) {
$ObtenerLinea = explode (" ", $Data [$n]);
echo "$ObtenerLinea[0] $ObtenerLinea[1]";
}
}
fclose ($Abrir);
}
?>
Explicacion
<?php
LeerNoticia();
?>
Que siga este post!!
Aca va otra funcion que acabo de hacer inspirada en rfi:
<?php
function antirfi($Variable,$Mensaje){
$Patron = "http+|www+";
if (eregi ($Patron, $Variable)){
echo "$Mensaje";
}
}
?>
La variable es por ej contenido.php?tonteras=contenidodetontera
Entonces la funcion ve si la variable tontera comienza con http o www (osea se esta inyectando una url posiblemente con una shell)
Si es asi imprime un mensaje, en este caso para usarlo seria asi:
antirfi ($tontera, "Qué intentas hacer imbéci?!l");
Saludos!
Funcion que nos dice el campo que queramos de una db:
lenguaje php
<?php
$hostname = "localhost";
$database = "no_se";
$username = "root";
$password = "";
$conn = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
//FUNCION imprime el array correspondiente.
function correctData($database,$conn,$tabla="",$WHERE="",$igual="",$mostrarThis=""){
mysql_select_db($database, $conn);
$consulta_contacto ="SELECT * FROM `$tabla` WHERE $WHERE='$igual'";
$capturar_datos_contacto = mysql_query($consulta_contacto,$conn) or die("Error conectando a la base de datos".mysql_error());
$total_rows=mysql_fetch_array($capturar_datos_contacto);
return $total_rows[$mostrarThis];
}
//Fin correctData
?>
oe man gracias por las funciones aver si sigen mequedo chiquito esta enseñansa .
que sogan posteando :rolleyes:
Nombre de la función: Filtrar BBC y Smileys
Descripción:Filtro de bbcodes y smileys (incluye .zip de smileys)
Lenguaje: PHP
Código:
function filtrar($anti){
$antihtml = htmlentities($anti);
$emoticonos_imagen = array("<img src=\"sonrisa.gif\">","<img src=\"feliz.gif\">","<img src=\"lloron.gif\">","<img src=\"sorprendido.gif\">","<img src=\"confundido\">");
$emoticonos_signo = array(":D",":)",":(",":O",":S");
$emoticonos = str_replace($emoticonos_signo, $emoticonos_imagen, $antihtml);
$bbcode1 = array("<b>","</b>","<i>","</i>","<u>","</u>","<img src=\"","\">","<a href=\"","\">","</a>","<br>");
$bbcode2 = array("[b]","[/b]","[i]","[/i]","[u]","[/u]","[img]","[/img]","[url=","]]","[/url]","[br]");
$mensaje = str_replace($bbcode2, $bbcode1, $emoticonos);
return $mensaje;
}
Explicación: Esto es una función que cree hace varios dias y me decidi a postearla aqui, esta función lo que hace es filtrar los "bbcodes y smileys" ([b ],[ /b], : ), : (...) y mediante html los muestra ,es una función sencilla y facil, además, podeis descargar los smileys desde aqui: www.krews.es/smileys.zip
Modo de uso: El uso es simple:
$prueba = "Hola [b]ElHacker.NET[/b] :), os traigo mi [i]función[/i], espero que os sirva.";
echo filtrar($prueba);
Nombre de la función: Años bisiestos
Descripción: Verifica si un año es bisiesto
Lenguaje: PHP
Código:
<?php
function bisiesto($año){
if ((($año%4 ==0) && ($año%100!=0)) || ($año%400==0)){
echo "El año: ".$año." es bisiesto";
}else{
echo "El año: ".$año." no es bisiesto";
}
}
?>
Explicación: Verifica si el año es mod entre 4, entre 100 y 400 si es así lo es, de lo contrario no lo es.
Modo de uso:
bisiesto(2008);
Te dira que el 2008 lo es.
Nombre de la función: Ultima Modificacion
Descripción: Muestra la fecha y hora de la ultima modificacion de un archivo
Lenguaje: PHP
Código:
function UltimaModificacion($archivo) {
$ultima_modificacion = filemtime($archivo);
$ultima_modificacion = date("j/ M/ y h:i a", $ultima_modificacion);
return $ultima_modificacion;
}
Explicación: Verifica la fecha de la ultima modificacion del archivo y la mostrara de la siguiente manera: 26/ Feb/ 09 10:00 am
Modo de uso:
Ultima Modificacion <?=UltimaModificacion('index.php');?>
Mostrara lo siguiente:
Última Modificacion: 26/ Feb/ 09 10:00 am
Nombre de la función: Palindrome
Descripción: Te dice si una palabra es palindrome o no
Lenguaje: PHP
Código:
function palindrome($pal1){
$x = strlen($pal1) - 1;
for($y; $y<$x and !$z; $y++,$x--){
if($pal1[$x]!=$pal1[$y]){
$z = 1;
}
}
if(!$z){
echo $pal1.' es palindrome';
}else{
echo $pal1.' no es palindrome';
}
}
Explicación: Es un simple algoritmo que va cambiando de orden las palabras y si son iguales que la primera es palindrome y si no, no.
Modo de uso:
palindrome("mi palabra");
[/quote]
Nombre de la función: Potencia
Descripción: Elevar un numero a X potencia.
Lenguaje: PHP
Código:
function potencia ($n1, $exponente)
{
$n2 = 1;
for ($i=0; $i<$exponente; $i++)
{
$n2 = ($n2*$n1);
}
return $n2;
}
Explicación: Multiplica a n2 (1 en un primer momento), tantas veces igual a exponente, por n1.
Modo de uso:
potencia(5, 3) //esto devuelve 125
Nombre de la función: Get Mac Address
Descripción: Esta función saca la mac address de un cliente.
Lenguaje: PHP
<?
function returnMacAddress() {
// This code is under the GNU Public Licence
// Written by michael_stankiewicz {don't spam} at yahoo {no spam} dot com
// Tested only on linux, please report bugs
// WARNING: the commands 'which' and 'arp' should be executable
// by the apache user; on most linux boxes the default configuration
// should work fine
// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `arp -a`;
// Split the output so every line is an entry of the $arpSplitted array
$arpSplitted = split("\n",$arpTable);
// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = getenv('REMOTE_ADDR');
// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {
// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}
// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address
// (you know, Murphy's laws)
reset($valueSplitted);
foreach ($valueSplitted as $spLine) {
if (preg_match("/[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f]/i",$spLine)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}
?>
Explicacion: He decidido incluir este código tras ver varios post en diferentes sitios mal contestados o con errores, tratando el tema de como obtener la mac de un cliente. El código esta probado en un servidor windows en red local. La función usa el comando arp -a de windows. Para terminar añadir que este código fue encontrado en otro sitio y despues de haber pasado por algunas correciones en el código lo he probado y funciona correctamente. Tambien comentan en el sitio de origen que es posible optimizarlo obteniendo primero la direccion remota.
Mode de uso:
Despues llamariamos a la función fuera de esta con:
echo "MAC Address va aqui: ".returnMacAddress();