Foros del Web » Programando para Internet » PHP »

Aporte - Algunas funciones útiles.

Estas en el tema de Aporte - Algunas funciones útiles. en el foro de PHP en Foros del Web. Sorry si ya alguien ha posteado alguna: Cáculo de edad en base a una fecha dada: Código PHP: function  edad ( $edad ){ list( $anio ...
  #1 (permalink)  
Antiguo 06/01/2011, 16:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Aporte - Algunas funciones útiles.

Sorry si ya alguien ha posteado alguna:


Cáculo de edad en base a una fecha dada:

Código PHP:
function edad($edad){
list(
$anio,$mes,$dia) = explode("-",$edad);
$anio_dif date("Y") - $anio;
$mes_dif date("m") - $mes;
$dia_dif date("d") - $dia;
if (
$dia_dif || $mes_dif 0)
$anio_dif--;
return 
$anio_dif;


Cortar imagen con los parámetros x1 x2 y1 y2:


Código PHP:
function cut_image($src_img$dst_img$dst_width$dst_height,$x$y) {
    
$result false;

    if (
file_exists ($src_img)) {
        list(
$width$height$type) = getimagesize($src_img);

        
$image_tmp imagecreatetruecolor($dst_width$dst_height);
        if (
$type == 1) {
            
$source imagecreatefromgif($src_img);
        }  elseif (
$type == 2) {
            
$source imagecreatefromjpeg($src_img);
        }  elseif (
$type == 3) {
            
$source imagecreatefrompng($src_img);
        }

        
imagecopy($image_tmp$source00$x$y $dst_height$dst_width$dst_height);

        if (
$dst_height 78 && $dst_width 78){
            
$image_tmp2 $image_tmp;
            
$image_tmp imagecreatetruecolor(7878);
            
imagecopyresampled($image_tmp$image_tmp200007878$dst_width$dst_height);
        }

        
$result imagejpeg($image_tmp$dst_img);
    }

    return 
$result;


Ordenar un array de objetos:

Código PHP:
function ordenar_array_de_objetos($array_datos$campo$direccion 'DESC') {
    
usort($array_datoscreate_function('$item1, $item2''return $item1->' $campo ' ' . ($direccion === 'ASC' '>' '<') . ' $item2->' $campo ';'));
    return 
$array_datos;

MUY util, limpiar parámetros get o post o algún array, luego no será necesario hacer isset ( evitas notices o warnings ) :

Código PHP:
function limpiar_array($data$keys) {
    
$result = array();
    foreach(
$keys as $key) {
        if(isset(
$data[$key]))
            
$result[$key] = $data[$key];
    }

    return 
$result;

Ej:

Código PHP:
$post limpiar_array($_POST'id''nombre''apellido');
$nombre $post['nombre']; 
Texto aleatorio de x caracteres, util para generar passwords:

$just_numbers obviamente es para solo número...

Código PHP:
function randomText($length$just_numbers false) {

    
$pattern "1234567890abcdefghijklmnopqrstuvwxyz";
    if(
$just_numbers) {
        
$key "";
        for(
$i 0$i $length$i++) {
    
            
$key .= $pattern{rand(09)};
    
        }        
    } else {
        
$key "";
        for(
$i 0$i $length$i++) {
    
            
$key .= $pattern{rand(035)};
    
        }        
    }

    return 
$key;


Obtener un tamaño equivalente de menor tamaño de un width y height especificos, sin "pixelar":

$w y $h son los valores máximos, $lw :


Código PHP:
function getNewSize($w$h$lw$lh) {
    
//obtain an new size from start, max dimesions
    
if($w $lw) {
        
$percent = ($lw 100) / $w;
        
$w $lw;
        
$h $h * ($percent 100);
    }
    if(
$h $lh) {
        
$percent = ($lh 100) / $h;
        
$h $lh;
        
$w $w * ($percent 100);
    }
    return 
json_encode(array('w' => $w'h' => $h));

Validar un email:

Código PHP:
function validEmail($email) {

    return (
eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"$email)) ? true false;


Escalar una imagen y guardarla con:


$scale es el valor porcentual de escalamiento

Código PHP:
function resizeImage($image$width$height$scale) {
    
$newImageWidth ceil($width $scale);
    
$newImageHeight ceil($height $scale);
    
$newImage imagecreatetruecolor($newImageWidth$newImageHeight);
    
$source imagecreatefromjpeg($image);
    
imagecopyresampled($newImage$source0000$newImageWidth$newImageHeight$width$height);
    
imagejpeg($newImage$image90);
    
chmod($image0777);
    return 
$image;

Generar un slug con un título:

Código PHP:
function crearslug($str$rep '-') {
    
$map = array(
        
'/à|á|å|â/' => 'a',
        
'/è|é|ê|ẽ|ë/' => 'e',
        
'/ì|í|î/' => 'i',
        
'/ò|ó|ô|ø/' => 'o',
        
'/ù|ú|ů|û/' => 'u',
        
'/ç/' => 'c',
        
'/ñ/' => 'n',
        
'/ä|æ/' => 'ae',
        
'/ö/' => 'oe',
        
'/ü/' => 'ue',
        
'/Ä/' => 'Ae',
        
'/Ü/' => 'Ue',
        
'/Ö/' => 'Oe',
        
'/ß/' => 'ss',
        
'/[^\w\s]/' => ' ',
        
'/\\s+/' => $rep,
        
sprintf('/^[%s]+|[%s]+$/'preg_quote($rep'/'), preg_quote($rep'/')) => '',
    );
    
$str preg_replace(array_keys($map), array_values($map), $str);
    return 
$str;

Espero les sirva de algo, yo las utilizo todo el tiempo. Si algo no se entiende, avisen y explico...
  #2 (permalink)  
Antiguo 06/01/2011, 18:25
Avatar de Masterphp  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/php/
Mensajes: 94
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Aporte - Algunas funciones útiles.

Buen aporte Saludos,
  #3 (permalink)  
Antiguo 06/01/2011, 21:06
 
Fecha de Ingreso: octubre-2004
Mensajes: 251
Antigüedad: 19 años, 5 meses
Puntos: 1
Respuesta: Aporte - Algunas funciones útiles.

muy utiles funciones, gracias
__________________
www.lomasnuevo.net
  #4 (permalink)  
Antiguo 07/01/2011, 00:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aporte - Algunas funciones útiles.

Gracias por el aporte... solo algunas anotaciones:

limpiar_array() te devuelve exactamente lo mismo que recibe en $data... a menos que hagas algo para forzar un valor, en este caso, puede ser cadena vacia:
Código PHP:
Ver original
  1. function limpiar_array($data, $keys) {
  2.     $result = array();
  3.     foreach($keys as $key)
  4.             $result[$key] = (isset($data[$key])) ? $data[$key] : '';
  5.     return $result;
  6. }

Tu opcion para validar un email no es muy adecuada, eregi() es obsoleta, en su lugar podrias usar:

Código PHP:
Ver original
  1. return preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $email);

Las otras no las he visto muy a fondo y solo me queda la duda de que es un slug?

Saludos y nuevamente gracias por el aporte!
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 07/01/2011, 00:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Aporte - Algunas funciones útiles.

Cita:
Iniciado por Triby Ver Mensaje
Gracias por el aporte... solo algunas anotaciones:

limpiar_array() te devuelve exactamente lo mismo que recibe en $data... a menos que hagas algo para forzar un valor, en este caso, puede ser cadena vacia:
Código PHP:
Ver original
  1. function limpiar_array($data, $keys) {
  2.     $result = array();
  3.     foreach($keys as $key)
  4.             $result[$key] = (isset($data[$key])) ? $data[$key] : '';
  5.     return $result;
  6. }

Tu opcion para validar un email no es muy adecuada, [URL="http://www.php.net/eregi"]eregi()[/URL] es obsoleta, en su lugar podrias usar:

Código PHP:
Ver original
  1. return preg_match('/^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/', $email);

Las otras no las he visto muy a fondo y solo me queda la duda de que es un slug?

Saludos y nuevamente gracias por el aporte!

Gracias por las correcciones.

Slug es una cadena de texto convertida a formato válido para URLs, posiblemente no todos usen ese término.

Saludos!
  #6 (permalink)  
Antiguo 07/01/2011, 06:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Aporte - Algunas funciones útiles.

Cita:
Iniciado por Triby Ver Mensaje
...
Las otras no las he visto muy a fondo y solo me queda la duda de que es un slug?
...
http://codex.wordpress.org/Glossary#Slug
  #7 (permalink)  
Antiguo 07/01/2011, 07:02
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Aporte - Algunas funciones útiles.

Por que no usar las funciones nativas(filters) que nos trae PHP:
http://www.w3schools.com/php/php_ref_filter.asp

Agrego: La mayoria de servidores ya disponen de php5.2
__________________
Drupal Argentina

Última edición por NUCKLEAR; 07/01/2011 a las 07:07
  #8 (permalink)  
Antiguo 07/01/2011, 07:04
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Aporte - Algunas funciones útiles.

También podría utilizarse array_filter para filtrar los elementos vacíos dentro de un arreglo.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

Etiquetas: funciones, aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.