Alternativa a file_get_contents() en PHP

Resulta frecuente que descarguemos una librería PHP, un plugin o que copiemos un snippet desde alguna página web amiga pero, a la hora de ejecutarlo, la configuración de nuestro servidor tenga restringidas ciertas acciones.

Con la función file_get_contents() suele ocurrir: la mayoría de proveedores de hostings tienen deshabilitada la función allow_url_open necesaria para su funcionamiento. Por tanto, hay que buscar formas alternativas que resuelvan el problema.

Una de las posibles soluciones es utilizar cURL, aunque esta herramiento tiene también sus propios detractores. Para nuestro ejemplo, crearíamos una función alternativa con la que reemplazaríamos a la problemática file_get_contents().

1
2
3
4
5
6
7
8
9
function getRemoteFile($url, $timeout = 10) {
  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $file_contents = curl_exec($ch);
  curl_close($ch);
  return ($file_contents) ? $file_contents : FALSE;
}

La función es bastante clara por sí misma: si la URL existe, devuelve su contenido; de lo contrario, devuelve el booleano FALSE.

Dentro de Php, Programación | Etiquetas: , , , | 4 Comentarios

MySQL: mejor tipo de campo para guardar IP

Cuando necesitamos guardar direcciones IP en nuestras bases de datos, lo más cómodo (y que casi hacemos por inercia) es asignar al campo un tipo VARCHAR con una longitud de 15 caracteres. Sin embargo, existe una opción mejor que poco a poco voy encontrándome en los principales CMS y Frameworks: INT UNSIGNED.

Así, utilizando el comando de MySQL INET_ATON, la dirección IP quedaría codificada en una cadena de 4 bytes que podríamos recuperar mediante su contrario INET_NTOA. Veamoslo con ejemplos:

1
2
3
4
5
6
7
# Tomamos una direccion IP y la convertimos en una cadena de enteros:
SELECT INET_ATON('192.168.0.10') AS ipn;
# Esto se traduciría en 3232235530
 
# El proceso inverso:
SELECT INET_NTOA(3232235530) AS ipa;
# Nos devuelve nuestra direccion IP anterior: 192.168.0.10

Ésta sería la forma más eficiente para el almacenamiento de IPs en nuestra base de datos en lugar del recurrente VARCHAR(15).

Dentro de MySQL | Etiquetas: , , | 3 Comentarios

MySQL: sustituir cadena con expresiones regulares

Muchas veces nos encontramos con la necesidad de cambiar algún valor recurrente en una base de datos MySQL. Puede ser, por ejemplo, una URL absoluta que hemos modificado, o la extensión de una imagen que está escrita a fuego en un campo.

Para poder hacer el cambio de forma segura, una manera rápida y fácil es usar expresiones regulares. Os dejo a continuación un pequeño snippet que os puede ser útil si se os da el caso:

1
2
UPDATE TABLE SET COLUMN = REPLACE(COLUMN, 'oldvalue', 'newvalue')
WHERE COLUMN REGEXP 'oldvalue';

Donde:

  • column es el nombre del campo en la tabla.
  • oldvalue es aquello que deseamos modificar.
  • newvalue es la nueva cadena que reemplaza la anterior

Obviamente, podemos utilizar variables para simplificar el código, pero dependiendo de nuestro cliente MySQL, puede llegar a complicarnos más la vida.

Dentro de MySQL | Etiquetas: , , , | 2 Comentarios

Longitud máxima de dirección URL

macro pixels url cliche

Haciendo algunas pruebas con un proyecto reciente, me encontré con esta pregunta: ¿cúal es la longitud máxima de una url en cada navegador?

Básicamente me preocupaba por IE6, ya que recordaba que tenía un límite pequeño.

Después de investigar un poco, llegué a un número mágico de caracteres del que es preferible no pasar:

2.083 caracteres en total para IE6. Seguir Leyendo…

Dentro de Programación | Etiquetas: , , , | 1 Comentario

Herramienta Online para Manejo de Color

ColorExplorer
Color Explorer es una aplicación online completamente gratuita que ofrece a los diseñadores una amplia variedad de herramientas para trabajar con el color de una forma amigable y totalmente integrada.

Permite por ejemplo seleccionar un color y analizar todas sus variaciones, mostrando sus análogos, complementarios o combinaciones más recomendadas. También permite subir una imagen para analizar sus colores de forma automática, mostrar librerías como la W3C, los web-safe colors, Focoltone, etc. O realizar útiles análisis de contrastes que nos indiquen lo acertado o no de un diseño.

Sin duda, una buena herramienta todo-en-uno para cuando necesitamos seleccionar los colores más acertados en nuestros trabajos.

Dentro de Diseño | Etiquetas: , , | 1 Comentario
Página 27 de 28Primera...1020...2425262728
Licencia Creative Commons 3.0

®Copyright 2011. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información