Administra tu Blog

¡Crea tu Blog Ya! Fácil y Gratis


Archivo: Febrero 2008

Como obtengo la fecha del servidor

codigosphp 24/02/2008 @ 18:11

$sdate=date("d")."/".date("m")."/".date("Y");
$stime=date("h").":".date("i"
);
?>

Reconocer características del visitante

codigosphp 24/02/2008 @ 18:11

if ($HTTP_ACCEPT_LANGUAGE != ''){ # Verificamos que el visitante haya designado algún idioma
    
$idiomes explode(","$HTTP_ACCEPT_LANGUAGE); 
# Convertimos HTTP_ACCEPT_LANGUAGE en array
    /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas
    en que está disponible nuestra web */
    
for ($i=0$i<count($idiomes); $i
++){
        if (!isset(
$idioma
)){
            if (
substr($idiomes[$i], 02) == "ca"){$idioma "ca"
;}
            if (
substr($idiomes[$i], 02) == "es"){$idioma "es"
;}
            if (
substr($idiomes[$i], 02) == "en"){$idioma "en"
;}
            if (
substr($idiomes[$i], 02) == "fr"){$idioma "fr"
;}
        }
    }
}

# Si no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma "ca"
;} 

Como genero un reporte en EXCEL a partir de una tabla

codigosphp 24/02/2008 @ 18:10

$shtml="

Id Codigo US$
1 C4325 2000.00
2 DX456 1000.00
3   -50.00
4 A18-TG 20.64

";
$scarpeta=""
//carpeta donde guardar el archivo.
//debe tener permisos 775 por lo menos
$sfile=$scarpeta."/xxxx.xls"
//ruta del archivo a generar
$fp=fopen($sfile,"w"
);
fwrite($fp,$shtml
);
fclose($fp
);
echo 
".$sfile."'>Haz click aqui"
;
?>

Como envio un email en formato HTML

codigosphp 24/02/2008 @ 18:10

$sfrom=""//cuenta que envia
$sdestinatario=""
//cuenta destino
$ssubject=""
//subject
$shtml=""
//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n"
;
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
;
$sheader=$sheader."Mime-Version: 1.0\n"
;
$sheader=$sheader."Content-Type: text/html"
;
mail($sdestinatario,$ssubject,$shtml,$sheader
);
?>

Cómo distribuir los resultados de un query en columnas

codigosphp 24/02/2008 @ 17:59

echo "

";

$columnes 4# Número de columnas (variable)

if (($rows=mysql_num_rows($result))==0) {
  echo 
"

$row[1]

";
?>

Convertir numeros a letras

codigosphp 08/02/2008 @ 17:49

Convertir numeros a letras
Consta de varias funciones que son llamadas desde las otras, la función principal es convertir_a_letras($numero). Admite un rango desde 0,00 hasta
9.999.999.999,99.

// FUNCIONES DE CONVERSION DE NUMEROS A LETRAS.

function centimos()
{
 global $importe_parcial;

 $importe_parcial = number_format($importe_parcial, 2, ".", "") * 100;

 if ($importe_parcial > 0)
  $num_letra = " con ".decena_centimos($importe_parcial);
 else
  $num_letra = "";

 return $num_letra;
}

function unidad_centimos($numero)
{
 switch ($numero)
 {
  case 9:
  {
   $num_letra = "nueve céntimos";
   break;
  }
  case 8:
  {
   $num_letra = "ocho céntimos";
   break;
  }
  case 7:
  {
   $num_letra = "siete céntimos";
   break;
  }
  case 6:
  {
   $num_letra = "seis céntimos";
   break;
  }
  case 5:
  {
   $num_letra = "cinco céntimos";
   break;
  }
  case 4:
  {
   $num_letra = "cuatro céntimos";
   break;
  }
  case 3:
  {
   $num_letra = "tres céntimos";
   break;
  }
  case 2:
  {
   $num_letra = "dos céntimos";
   break;
  }
  case 1:
  {
   $num_letra = "un céntimo";
   break;
  }
 }
 return $num_letra;
}

function decena_centimos($numero)
{
 if ($numero >= 10)
 {
  if ($numero >= 90 && $numero <= 99)
  {
     if ($numero == 90)
      return "noventa céntimos";
     else if ($numero == 91)
      return "noventa y un céntimos";
     else
      return "noventa y ".unidad_centimos($numero - 90);
  }
  if ($numero >= 80 && $numero <= 89)
  {
   if ($numero == 80)
    return "ochenta céntimos";
   else if ($numero == 81)
    return "ochenta y un céntimos";
   else
    return "ochenta y ".unidad_centimos($numero - 80);
  }
  if ($numero >= 70 && $numero <= 79)
  {
   if ($numero == 70)
    return "setenta céntimos";
   else if ($numero == 71)
    return "setenta y un céntimos";
   else
    return "setenta y ".unidad_centimos($numero - 70);
  }
  if ($numero >= 60 && $numero <= 69)
  {
   if ($numero == 60)
    return "sesenta céntimos";
   else if ($numero == 61)
    return "sesenta y un céntimos";
   else
    return "sesenta y ".unidad_centimos($numero - 60);
  }
  if ($numero >= 50 && $numero <= 59)
  {
   if ($numero == 50)
    return "cincuenta céntimos";
   else if ($numero == 51)
    return "cincuenta y un céntimos";
   else
    return "cincuenta y ".unidad_centimos($numero - 50);
  }
  if ($numero >= 40 && $numero <= 49)
  {
   if ($numero == 40)
    return "cuarenta céntimos";
   else if ($numero == 41)
    return "cuarenta y un céntimos";
   else
    return "cuarenta y ".unidad_centimos($numero - 40);
  }
  if ($numero >= 30 && $numero <= 39)
  {
   if ($numero == 30)
    return "treinta céntimos";
   else if ($numero == 91)
    return "treinta y un céntimos";
   else
    return "treinta y ".unidad_centimos($numero - 30);
  }
  if ($numero >= 20 && $numero <= 29)
  {
   if ($numero == 20)
    return "veinte céntimos";
   else if ($numero == 21)
    return "veintiun céntimos";
   else
    return "veinti".unidad_centimos($numero - 20);
  }
  if ($numero >= 10 && $numero <= 19)
  {
   if ($numero == 10)
    return "diez céntimos";
   else if ($numero == 11)
    return "once céntimos";
   else if ($numero == 11)
    return "doce céntimos";
   else if ($numero == 11)
    return "trece céntimos";
   else if ($numero == 11)
    return "catorce céntimos";
   else if ($numero == 11)
    return "quince céntimos";
   else if ($numero == 11)
    return "dieciseis céntimos";
   else if ($numero == 11)
    return "diecisiete céntimos";
   else if ($numero == 11)
    return "dieciocho céntimos";
   else if ($numero == 11)
    return "diecinueve céntimos";
  }
 }
 else
  return unidad_centimos($numero);
}

function unidad($numero)
{
 switch ($numero)
 {
  case 9:
  {
   $num = "nueve";
   break;
  }
  case 8:
  {
   $num = "ocho";
   break;
  }
  case 7:
  {
   $num = "siete";
   break;
  }
  case 6:
  {
   $num = "seis";
   break;
  }
  case 5:
  {
   $num = "cinco";
   break;
  }
  case 4:
  {
   $num = "cuatro";
   break;
  }
  case 3:
  {
   $num = "tres";
   break;
  }
  case 2:
  {
   $num = "dos";
   break;
  }
  case 1:
  {
   $num = "uno";
   break;
  }
 }
 return $num;
}

function decena($numero)
{
 if ($numero >= 90 && $numero <= 99)
 {
  $num_letra = "noventa ";
  
  if ($numero > 90)
   $num_letra = $num_letra."y ".unidad($numero - 90);
 }
 else if ($numero >= 80 && $numero <= 89)
 {
  $num_letra = "ochenta ";
  
  if ($numero > 80)
   $num_letra = $num_letra."y ".unidad($numero - 80);
 }
 else if ($numero >= 70 && $numero <= 79)
 {
   $num_letra = "setenta ";
  
  if ($numero > 70)
   $num_letra = $num_letra."y ".unidad($numero - 70);
 }
 else if ($numero >= 60 && $numero <= 69)
 {
  $num_letra = "sesenta ";
  
  if ($numero > 60)
   $num_letra = $num_letra."y ".unidad($numero - 60);
 }
 else if ($numero >= 50 && $numero <= 59)
 {
  $num_letra = "cincuenta ";
  
  if ($numero > 50)
   $num_letra = $num_letra."y ".unidad($numero - 50);
 }
 else if ($numero >= 40 && $numero <= 49)
 {
  $num_letra = "cuarenta ";
  
  if ($numero > 40)
   $num_letra = $num_letra."y ".unidad($numero - 40);
 }
 else if ($numero >= 30 && $numero <= 39)
 {
  $num_letra = "treinta ";
  
  if ($numero > 30)
   $num_letra = $num_letra."y ".unidad($numero - 30);
 }
 else if ($numero >= 20 && $numero <= 29)
 {
  if ($numero == 20)
   $num_letra = "veinte ";
  else
   $num_letra = "veinti".unidad($numero - 20);
 }
 else if ($numero >= 10 && $numero <= 19)
 {
  switch ($numero)
  {
   case 10:
   {
    $num_letra = "diez ";
    break;
   }
   case 11:
   {
    $num_letra = "once ";
    break;
   }
   case 12:
   {
    $num_letra = "doce ";
    break;
   }
   case 13:
   {
    $num_letra = "trece ";
    break;
   }
   case 14:
   {
    $num_letra = "catorce ";
    break;
   }
   case 15:
   {
    $num_letra = "quince ";
    break;
   }
   case 16:
   {
    $num_letra = "dieciseis ";
    break;
   }
   case 17:
   {
    $num_letra = "diecisiete ";
    break;
   }
   case 18:
   {
    $num_letra = "dieciocho ";
    break;
   }
   case 19:
   {
    $num_letra = "diecinueve ";
    break;
   }
  }
 }
 else
  $num_letra = unidad($numero);

 return $num_letra;
}

function centena($numero)
{
 if ($numero >= 100)
 {
  if ($numero >= 900 & $numero <= 999)
  {
   $num_letra = "novecientos ";
   
   if ($numero > 900)
    $num_letra = $num_letra.decena($numero - 900);
  }
  else if ($numero >= 800 && $numero <= 899)
  {
   $num_letra = "ochocientos ";
   
   if ($numero > 800)
    $num_letra = $num_letra.decena($numero - 800);
  }
  else if ($numero >= 700 && $numero <= 799)
  {
   $num_letra = "setecientos ";
   
   if ($numero > 700)
    $num_letra = $num_letra.decena($numero - 700);
  }
  else if ($numero >= 600 && $numero <= 699)
  {
   $num_letra = "seiscientos ";
   
   if ($numero > 600)
    $num_letra = $num_letra.decena($numero - 600);
  }
  else if ($numero >= 500 && $numero <= 599)
  {
   $num_letra = "quinientos ";
   
   if ($numero > 500)
    $num_letra = $num_letra.decena($numero - 500);
  }
  else if ($numero >= 400 && $numero <= 499)
  {
   $num_letra = "cuatrocientos ";
   
   if ($numero > 400)
    $num_letra = $num_letra.decena($numero - 400);
  }
  else if ($numero >= 300 && $numero <= 399)
  {
   $num_letra = "trescientos ";
   
   if ($numero > 300)
    $num_letra = $num_letra.decena($numero - 300);
  }
  else if ($numero >= 200 && $numero <= 299)
  {
   $num_letra = "doscientos ";
   
   if ($numero > 200)
    $num_letra = $num_letra.decena($numero - 200);
  }
  else if ($numero >= 100 && $numero <= 199)
  {
   if ($numero == 100)
    $num_letra = "cien ";
   else
    $num_letra = "ciento ".decena($numero - 100);
  }
 }
 else
  $num_letra = decena($numero);
 
 return $num_letra;
}

function cien()
{
 global $importe_parcial;
 
 $parcial = 0; $car = 0;
 
 while (substr($importe_parcial, 0, 1) == 0)
  $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
 
 if ($importe_parcial >= 1 && $importe_parcial <= 9.99)
  $car = 1;
 else if ($importe_parcial >= 10 && $importe_parcial <= 99.99)
  $car = 2;
 else if ($importe_parcial >= 100 && $importe_parcial <= 999.99)
  $car = 3;
 
 $parcial = substr($importe_parcial, 0, $car);
 $importe_parcial = substr($importe_parcial, $car);
 
 $num_letra = centena($parcial).centimos();
 
 return $num_letra;
}

function cien_mil()
{
 global $importe_parcial;
 
 $parcial = 0; $car = 0;
 
 while (substr($importe_parcial, 0, 1) == 0)
  $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
 
 if ($importe_parcial >= 1000 && $importe_parcial <= 9999.99)
  $car = 1;
 else if ($importe_parcial >= 10000 && $importe_parcial <= 99999.99)
  $car = 2;
 else if ($importe_parcial >= 100000 && $importe_parcial <= 999999.99)
  $car = 3;
 
 $parcial = substr($importe_parcial, 0, $car);
 $importe_parcial = substr($importe_parcial, $car);
 
 if ($parcial > 0)
 {
  if ($parcial == 1)
   $num_letra = "mil ";
  else
   $num_letra = centena($parcial)." mil ";
 }
 
 return $num_letra;
}

function millon()
{
 global $importe_parcial;
 
 $parcial = 0; $car = 0;
 
 while (substr($importe_parcial, 0, 1) == 0)
  $importe_parcial = substr($importe_parcial, 1, strlen($importe_parcial) - 1);
 
 if ($importe_parcial >= 1000000 && $importe_parcial <= 9999999.99)
  $car = 1;
 else if ($importe_parcial >= 10000000 && $importe_parcial <= 99999999.99)
  $car = 2;
 else if ($importe_parcial >= 100000000 && $importe_parcial <= 999999999.99)
  $car = 3;
 
 $parcial = substr($importe_parcial, 0, $car);
 $importe_parcial = substr($importe_parcial, $car);
 
 if ($parcial == 1)
  $num_letras = "un millón ";
 else
  $num_letras = centena($parcial)." millones ";
 
 return $num_letras;
}

function convertir_a_letras($numero)
{
 global $importe_parcial;
 
 $importe_parcial = $numero;
 
 if ($numero < 1000000000)
 {
  if ($numero >= 1000000 && $numero <= 999999999.99)
   $num_letras = millon().cien_mil().cien();
  else if ($numero >= 1000 && $numero <= 999999.99)
   $num_letras = cien_mil().cien();
  else if ($numero >= 1 && $numero <= 999.99)
   $num_letras = cien();
  else if ($numero >= 0.01 && $numero <= 0.99)
  {
   if ($numero == 0.01)
    $num_letras = "un céntimo";
   else
    $num_letras = convertir_a_letras(($numero * 100)."/100")." céntimos";
  }
 }
 return $num_letras;
}

Calculo de edad

codigosphp 08/02/2008 @ 17:48

Calculo de edad
Función que calcula la edad de una persona tomando su fecha de nacimiento.

function edad($fecha_nac)
{
//Esta funcion toma una fecha de nacimiento
//desde una base de datos mysql
//en formato aaaa/mm/dd y calcula la edad en números enteros

 $dia=date("j");
 $mes=date("n");
 $anno=date("Y");

 //descomponer fecha de nacimiento
 $dia_nac=substr($fecha_nac, 8, 2);
 $mes_nac=substr($fecha_nac, 5, 2);
 $anno_nac=substr($fecha_nac, 0, 4);

 if($mes_nac>$mes){
  $calc_edad= $anno-$anno_nac-1;
 }else{
  if($mes==$mes_nac AND $dia_nac>$dia){
   $calc_edad= $anno-$anno_nac-1; 
  }else{
   $calc_edad= $anno-$anno_nac;
  }
 }
 return $calc_edad;
}
?>

Redimensionar imagen

codigosphp 08/02/2008 @ 17:46

Redimensionar imagen
Este código redimensiona una imagen JPG a un tamaño especificado.
Necesita la libreria GD.

$origen="img/imagen.jpg";
$destino="img/nuevaimagen.jpg";
$destino_temporal=tempnam("tmp/","tmp");
redimensionar_jpeg($origen, $destino_temporal, 300, 350, 100);

// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);

// mostramos la imagen
echo "";

function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
 // crear una imagen desde el original
 $img = ImageCreateFromJPEG($img_original);
 // crear una imagen nueva
 $thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
 // redimensiona la imagen original copiandola en la imagen
 ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
  // guardar la nueva imagen redimensionada donde indicia $img_nueva
 ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
 ImageDestroy($img);
}
?>

Codificación del mail

codigosphp 08/02/2008 @ 17:44

Codificación del mail

Código que codifica el correo en modo ascii y/o hexadecimal para que algunos programas de captura de emails no los puedan encontrar.

echo "\n".encodeMailAscii("nombre_cuenta-correo@dominio.com")."nombre_cuenta-correo@dominio.com")."'>".encodeMailAscii("nombre_cuenta-correo@dominio.com")." />";
echo "\n".encodeMailHexadecimal("nombre_cuenta-correo@dominio.com")."nombre_cuenta-correo@dominio.com")."'>".encodeMailHexadecimal("nombre_cuenta-correo@dominio.com")." />";

/*
 * Devuelve una cadena en su valor ascii
 * para ser interpretada por los navegadores
 */
function encodeMailAscii($mail)
{
 for($i=0;$i  {
  $result.="&#".ord($mail[$i]);
 }
 return $result;
}

/*
 * Devuelve una cadena en su valor hexadecimal
 * para ser interpretada por los navegadores
 */
function encodeMailHexadecimal($mail)
{
 for($i=0;$i  {
  $result.="&#x".bin2hex($mail[$i]);
 }
 return $result;
}
?>

Subir archivos a un servidor

codigosphp 08/02/2008 @ 17:39

Crear un fichero llamado bajar.php con el siguiente codigo. no se necesita ftp para subir ficheros. es probable que necesiten darle 666 o 777 a la carpeta a usar

if($archivo !=""){
@copy($archivo, $archivo_name);
echo "El archivo se ha guardado correctamente.";
}
else{
echo "Selecciona el archivo a guardar en el servidor...";
}
?>



 

Rotador de texto con php

codigosphp 06/02/2008 @ 05:19

Hay que hacer los ficheros.txt con la palabra que iremos a rotar o el contenido.

include ("texto1.txt");
include (
"texto2.txt"
);
include (
"texto3.txt"
);
include (
"texto4.txt"
);

$textscript1 $texto1
$textscript2 
$texto2
$textscript3 
$texto3
$textscript4 
$texto4

<script language="javascript" type="text/javascript">

var textos = new Array()
textos[0] = ''+$textscript1?>+''
textos[1] = ''+echo $textscript2?>+''
textos[2] = ''+echo $textscript3?>+''
textos[3] = ''+echo $textscript4?>+''
var indice = 0

?>

Contador de visitas con un archivo .txt

codigosphp 05/02/2008 @ 07:40

Primero que nada debemos crear un archivo que se encuentre con el numero "0", eso claro si queremos iniciar desde ese numero de visitas, dicho archivo se llamara "visitas.txt":

$counterFile = "visitas.txt";

function displayCounter($counterFile) {
$fp = fopen($counterFile,rw
);
$num = fgets($fp,5
);
$num += 1
;
echo
"$num"
;
exec( "rm -rf $counterFile"
);
exec( "echo $num > $counterFile"
);
}

if (!file_exists($counterFile)) {
exec( "echo 1 > $counterFile"
);
}

displayCounter($counterFile);

?>