En este post voy a explicar como comprobar las extensiones de una imagen con una simple función en php podremos sacar la extensión de un archivo, ya sea una imagen o cualquier tipo de documento, subido mediante un formulario en php. Primero algo de teoría. Para acceder a las propiedades del archivo o imagen php nos brinda el array $_FILES con las siguientes propiedades, en donde archivo es el nombre del campo con el cual se envió la imagen desde el formulario: * $_FILES['archivo']['size']: tamaño en bytes del archivo o imagen recibido * $_FILES['archivo']['type']: tipo mime del archivo, por ejemplo image/gif * $_FILES['archivo']['name']: nombre original del archivo * $_FILES['archivo']['tmp_name']: nombre del archivo temporal que se utiliza para almacenar en el servidor el archivo recibido Ejemplo de un array Array ( [file1] => Array ( [name] => MyFile.txt [type] => text/plain [tmp_name] => /tmp/php/php1h4j1o [error] => 0 [size] => 123 (el tamaño en bytes) ) ) Ahora conociendo un poquito más como funciona el array $_FILES podremos sacar muy fácilmente la extensión del archivo subido y por ejemplo comprobar que es una imagen .jpg, .jpeg, .png o .gif para nuestra galería de fotos o lo que sea. No permitiendo subir archivos [...]
Pues hace tiempo que implementé este script para crear marcas de agua en una tienda online para marcar productos como agotados y no me acordaba que lo tenía. Es un script muy sencillo que usa las librerías GD para manipular las imágenes y superponer una sobre la otra. Primero es necesario crear una marca de agua en formato PNG. La ventaja principal de éste formato (indispensable en este caso) es que permite 255 niveles de transparencias, por lo que se puede lograr una imagen translúcida. Yo he creado una con la palabra agotado, pero he decir que no es lo mejor que se puede esperar, no soy diseñador y no me gusta estar tocando Photoshop. jejeje bueno es esta la imagen que he usado como marca de agua, obviamente es un ejemplo y se puede usar otra mejor o con otro texto,más grande, etc.. Basta con pasarle el nombre de la imagen a la cual se le desea aplicar la marca de agua a través de la URL… watermark.php?i=rockers_coffee_pink.jpg <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Implementacion de imagen con marca de agua</title> </head> <body> <h1>Implementacion de imagen con marca de agua</h1> <p>Imagen sin marca de agua.</p> <img [...]
Desde hace ya mas de un año que he lanzado el proyecto linkinho, un sistema para acortar urls al estilo tinyurl. Este proyecto está mas enfocado al mercado Portugués y Brasileiro, pero igualmente puede resultar muy útil a cualquiera acortar una url en un momento determinado. Por ejemplo la url http://linkinho.com/d apuntará a la home de blog. Como he dicho es útil para acortar links / urls que sean demasiado largas y “descuadren” mucho en un email, en un documento de texto, para usarlo en twitter vinculando la url de linkinho a tu post, web, etc o donde se quiera incluir. Para todo el tenga curiosidad y desee probar la aplicación y le guste pongo a disposición la api, con la que se podrá usar el sistema de acortar urls desde su propio proyecto o codigo. Para leer un poco mas sobre el proyecto linkinho, leer el siguiente post: Nuevo proyecto: linkinho y quien desee probar directamente la aplicacion, pues nada, este es el link: linkinho.com La api esta basada en PHP. Es tan sencillo como llamar a la url : http://www.linkinho.com/api.php y pasar el parametro url por GET. De manera que se hará una llamada tipo: http://www.linkinho.com/api.php?url=http://www.pedroventura.com y esto [...]
Ya era hora de hacer un post algo mas decente, porque tengo algunos pero son muy concretos, y quería hacer este que es mucho mas genérico y esencial para la INICIACIÓN con expresiones regulares en php, ya que se pueden hacer muchas aplicaciones muy útiles y “guarrerias” con esto. Las expresiones regulares permiten definir patrones de coincidencia y aplicarlas a cadenas de texto para saber si la cadena (o parte de ella) cumple el patrón e incluso realizar transformaciones de la cadena. PHP permite dos tipos principales de funciones para expresiones regulares: las de tipo ereg (Expresiones regulares POSIX) y las de tipo preg (Compatibles con Perl). Son muy similares, aúnque las segundas llegan a ser algo más potentes. Ejemplo de Expresiones regulares compatibles con Perl <?php $cadena1 = "1234567"; $cadena2 = "abcdefg"; $patron = "/^[[:digit:]]+$/"; if (preg_match($patron, $cadena1)) { print "<p>La cadena $cadena1 son sólo números.</p>\n"; } else { print "<p>La cadena $cadena1 no son sólo números.</p>\n"; } if (preg_match($patron, $cadena2)) { print "<p>La cadena $cadena2 son sólo números.</p>\n"; } else { print "<p>La cadena $cadena2 no son sólo números.</p>\n"; } ?> resultado La cadena 1234567 son sólo números. La cadena abcdefg no son sólo números. La función preg_match() [...]
/** * Función para limpiar cualquier meta tag o cadena. * Lo limpia de caracteres htmlentities tipo á, > etc * Le quita los saltos de linea de html, los <br /> y cualquier carácter de tabulacion o que le añada espacio. * Adicionalmente se le puede pasar un numero de caracteres que se quiere mostrar, de esta manera el string se corta por ese numero * * @param mixed $string * @param mixed $corte * @return string */ function limpiar_metas($string,$corte = null) { $caracters_no_permitidos = array("\"","’"); # paso los caracteres entities tipo á $gt;etc a sus respectivos html $s = html_entity_decode($string,ENT_COMPAT,’UTF-8′); # quito todas las etiquetas html y php $s = strip_tags($s); # elimino todos los retorno de carro $s = str_replace("\r", ”, $s); # en todos los espacios en blanco le añado un <br /> para después eliminarlo $s = preg_replace(‘/(?<!>)\n/’, "<br />\n", $s); # elimino la inserción de nuevas lineas $s = str_replace("\n", ”, $s); # elimino tabulaciones y el resto de la cadena $s = str_replace("\t", ”, $s); # elimino caracteres en blanco $s = preg_replace(‘/[ ]+/’, ‘ ‘, $s); $s = preg_replace(‘/<!–[^-]*–>/’, ”, $s); # vuelvo a hacer el strip para quitar el <br /> [...]