Funciones sencillas pero útiles en PHP
Con mi poca experiencia en PHP, el lenguaje q uso para apps web (como Losdelafoto.com), me ha tocado hacer unas funciones q me han ayudado bastante. Aunque sencillas, las comparto con uds compañeros geek o geek-wannabe. Usenlas libremente y si alguna les sirvi, haganme un comentario para alentarme a seguir aprendiendo ;). Con ellas podran:
- Evitar tags HTML y modificar datos de formularios
- Generar SELECTS para ingreso de fechas o cantidades
- Crear un thumbnail de una imagen JPG
- Insertar un logo con transparencia a una imagen JPG
- Crear password con caracteres random/aleatorios
Evitar tags HTML y modificar datos de formularios:
Al recibir info de un formulario (como datos personales) un usuario puede haber puesto espacios a los lados y algunos tratan de poner tags HTML para joder la presentacion del sitio, pero uno q es mas cabron lo puede evitar tan facil como asi
function checkString($s) {
$s = str_replace("<","<",$s);
$s = str_replace(chr(13),"<br>",$s);
return trim($s);
}
$nombre=checkString($_POST['nombre']);
Generar SELECTS para ingreso de fechas o cantidades:
Para ingresar fechas o cantidades es aburrido escribir en HTML los <select> con cada numero, y por q hacerlo si PHP es maravilloso y lo puede hacer por nosotros algo asi:
function selectt($name, $startt, $endd, $first, $selected=false){
echo("<select name=$name>");
echo("<option value=>$first");
if ($startt< =$endd) {
for ($i=$startt; $i<=$endd; $i++){
$sell_str= $selected==$i ? "selected" : "";
echo("<option $sell_str value=$i>$i</option>”);
}
} else {
for ($i=$startt; $i>=$endd; $i–){
echo(”<option value=$i>$i</option>”);
}
}
echo(”</select>”);
}
$name es el nombre del <select>, $startt y $endd los valores donde empezar y terminar, $first es el valor q dice “dia” o “mes” para que el usuario sepa que ingresar en el campo y $selected (opcional) es por si quiero que aparezca seleccionado un valor por default.
Crear un thumbnail de una imagen JPG
Si los usuarios pueden hacer upload de imagenes (JPG en este caso, pero se puede extender a los formatos q soporta GD) uds pueden crear automaticamente un thumbnail de esta imagen con esta funcion dandole el ancho de este y donde guardarlo:
function makeThumb($image, $newWidth, $dirr) {
$src_img= imagecreatefromjpeg($image);
$old_x= imageSX($src_img);
$old_y= imageSY($src_img);
$thumb_w= $newWidth;
$thumb_h= ($newWidth / $old_x) * $old_y;
$dst_img= ImageCreateTrueColor($thumb_w,$thumb_h);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y);
imagejpeg($dst_img,$dirr);
imagedestroy($dst_img);
imagedestroy($src_img);
}
Insertar un logo con transparencia a una imagen JPG
En Losdelafoto.com a cada imagen publicada le pongo un logo PNG con transparencia en la esquina derecha de abajo con esta funcion:
function copyLogo($filee, $logo){
$destimm= imagecreatefromjpeg($filee);
$imm_x=imageSX($destimm);
$imm_y=imageSY($destimm);
$logo= imagecreatefrompng($logo);
$logo_x=imageSX($logo);
$logo_y=imageSY($logo);
imagecopy($destimm, $logo, $imm_x-$logo_x-3, $imm_y-$logo_y-3, 0, 0, $logo_x, $logo_y);
imagejpeg($destimm, $filee);
imagedestroy($destimm);
imagedestroy($logo);
}
donde comopodran adivinar, $file es la imagen y $logo el logo…
Crear password con caracteres random/aleatorios
Para crear un password random para un usuario uso una funcion algo asi:
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
function randStr($long){ //largo de string random
$valuess="abcdefghijklmnopqrstuvwxyz0123456789";
$resultt="";
mt_srand(make_seed());
for ($i=1; $i < = $long; $i++){
$resultt .= $valuess[mt_rand(0,strlen($valuess)-1)];
}
return $resultt;
}



March 13th, 2006 at 5:21 pm
basicas… porque hacer que un n0b implemente una funcion para remover tags, si desde la 3.0.8 existe strip_tags? la cual ademas te permite introducir tags que podrian querer mantener?
http://www.php.net/manual/es/function.strip-tags.php
con las demas mejor ni sigo… pero bueno, al parecer estas aprendiendo.
suerte
March 14th, 2006 at 2:26 pm
:$
si, estaba aprendiendo… vaya!!
March 14th, 2006 at 4:36 pm
Eso es lo importante: Que aprendas
Ademas, nunca hemos perdido la fe en vos!
jajaja
March 19th, 2006 at 6:05 pm
No conocia strip_tags() en ese entonces, me las ingenie. A veces como q siente uno mas rapido hacerlo a su manera q buscar las opciones de otros… no siempre es bueno eso…