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: 15 años, 10 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 < 0 || $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, $source, 0, 0, $x, $y - $dst_height, $dst_width, $dst_height);

        if (
$dst_height > 78 && $dst_width > 78){
            
$image_tmp2 = $image_tmp;
            
$image_tmp = imagecreatetruecolor(78, 78);
            
imagecopyresampled($image_tmp, $image_tmp2, 0, 0, 0, 0, 78, 78, $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_datos, create_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(0, 9)};
    
        }        
    } else {
        
$key = "";
        for(
$i = 0; $i < $length; $i++) {
    
            
$key .= $pattern{rand(0, 35)};
    
        }        
    }

    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, $source, 0, 0, 0, 0, $newImageWidth, $newImageHeight, $width, $height);
    
imagejpeg($newImage, $image, 90);
    
chmod($image, 0777);
    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: 17 años, 1 mes
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: 22 años
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: 18 años, 2 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: 15 años, 10 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: 18 años, 9 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: 21 años
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: 22 años, 10 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 01:34.