jueves, 27 de agosto de 2015

Obtener uso de disco o partición mediante PHP

Si necesitamos saber el tamaño total y el uso del disco en el que tenemos alojada nuestra web, por ejemplo para avisar de que queda poco espacio libre, lo podemos hacer fácilmente mediante PHP. Para ello contamos con dos funciones muy útiles:
  • float disk_free_space ( string $directory ): devuelve el número de bytes disponibles en el sistema de archivos o partición de disco que corresponde con el directorio especificado.
  • float disk_total_space ( string $directory ): devuelve el número total de bytes del sistema de archivos o partición de disco que corresponde con el directorio especificado.

A modo de ejemplo hemos creado una función que utiliza las funciones anteriomente mencionadas y que nos devolverá una cadena con el total y el uso de discos en GB y el porcentaje de uso y libre si hemos superado un porcentaje límite de uso de disco o partición, que establecemos por defecto en el 90%. Si no superamos dicho límite, devolvemos false:


 function getDiskUsage($dir, $limit=90){
  $freespace = disk_free_space($dir);
  $totalspace = disk_total_space($dir);
  $freespace_mb = $freespace/1024/1024;
  $totalspace_mb = $totalspace/1024/1024;
  $freespace_percent = ($freespace/$totalspace)*100;
  $used_percent = (1-($freespace/$totalspace))*100;

  if ($used_percent > $limit){
   $text = sprintf(_('Espacio total').": %.2fGB", $totalspace_mb/1024).' - ';
   $text.= sprintf(_('libre').": %.2fGB", $freespace_mb/1024).' - ';
   $text.= sprintf(_('%% usado').": %.2f%%", $used_percent).' - ';
   $text.= sprintf(_('%% libre').": %.2f%%", $freespace_percent);
   return $text;
  }

  return false;
 }



viernes, 23 de enero de 2015

QR World. Generador online gratuito de códigos QR

Hoy en día casi todo el mundo ya ha oído hablar de los códigos QR o los habrá visto impresos en algún soporte publicitario. Un ejemplo sería este:


Unos amigos nos envían el enlace a su proyecto web http://www.qrworld.net con el que podremos generar de forma totalmente gratuita y anónima multitud de códigos QR con información variada que va desde una simple URL a una tarjeta de visita personal o VCARD.


El diseño se adapta totalmente a los dispositivos actuales ya que está realizado con Bootstrap y jQuery y como se ve en la imagen, está disponible en inglés, español o castellano y catalán.

Una vez seleccionemos el tipo de información y escribamos los datos podremos personalizarlo eligiendo el color de fondo, el color de los píxels, el tamaño y la redundancia de los datos. Con todo ello generaremos un código QR que podremos descargar a nuestro equipo o dispositivo en formato .png.

Además de un generador de códigos QR, en la web podremos encontrar una sección de preguntas frecuentes (FAQ) en la que se nos informa de las características de los códigos QR.

También nos han comentado que el proyecto sigue activo y se van a añadir novedades bastante interesantes, como los códigos QR dinámicos.

Sin más, desear al equipo de http://www.qrworld.net mucha suerte en esta nueva andadura.

Obtener listado de archivos de un directorio por fecha de modificación con PHP

Si necesitáis recorrer un directorio con PHP y obtener los archivos modificados en una fecha en concreto, lo podéis conseguir fácilmente con esta función que creé hace pocos días.

function getFilesFromDate($dir, $day=null){
 if ($day==null)
  $day = time();
  
 // Leo todos los ficheros de la carpeta
 $dir = opendir($dir);
 while ($file = readdir($dir)){
  if ($file!='.' && $file!='..' && is_file($dir.'/'.$file) && date("Ymd", $day)==date("Ymd", filemtime($dir.'/'.$file))){
   $arrfiles[] = $file;
  }
 }
 closedir($dir);
 return $arrfiles;
}

Como vemos, únicamente le tenemos que pasar el directorio y el día. Si no pasamos el día la función cogerá el día actual para realizar la búsqueda.

viernes, 16 de enero de 2015

Ranking de lenguajes de programación más usados. Índice TIOBE enero 2015

Javascript es elegido el lenguaje de programación del año 2014

Después de varios años, Javascript ha sido elegido el lenguaje del año del índice TIOBE. En un final de año 2014 bastante apretado con Swift y R, que parecían que iban a ser los vencedores, finalmente Javascript ha sido el vencedor. Y lo ha sido gracias al +1,70% que ha conseguido en todo el año pasado, empujado por el éxito de las librerías basadas en él JQuery, Bootstrap, Node.js y GWT.

El índice queda de la siguiente forma:

Jan 2015Jan 2014ChangeProgramming LanguageRatingsChange
11C16.703%-1.24%
22Java15.528%-1.00%
33Objective-C6.953%-4.14%
44C++6.705%-0.86%
55C#5.045%-0.80%
66PHP3.784%-0.82%
79changeJavaScript3.274%+1.70%
88Python2.613%+0.24%
913changePerl2.256%+1.33%
1017changePL/SQL2.014%+1.38%
1115changeMATLAB1.390%+0.62%
1226changeABAP1.273%+0.80%
1327changeCOBOL1.267%+0.81%
1424changeAssembly1.171%+0.68%
1512changeRuby1.130%+0.07%
1611changeVisual Basic .NET1.074%-0.48%
17-changeVisual Basic1.074%+1.07%
1844changeR1.042%+0.79%
1910changeTransact-SQL0.874%-0.68%
2020Delphi/Object Pascal0.837%+0.24%
Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

martes, 9 de diciembre de 2014

Ranking de lenguajes de programación más usados. Índice TIOBE diciembre 2014

R y Swift candidatos a lenguajes de programación del año


Alrededor del día 1 de enero de 2015 se anunciará el lenguaje de programación más importante del año 2014. Entre los mejor posicionados para obtener dicho galardón se encuentran el lenguaje estadístico R y el nuevo lenguaje de programación de Apple Swift. Aparte de estos dos tienen posibilidades de ganar también Javascript y Dart.

El premio se concederá al lenguaje de programación que más haya crecido en el porcentaje de uso (columna ratings) durante el año 2014.

El ranking de este mes queda de la siguiente forma:

Dec 2014Dec 2013ChangeProgramming LanguageRatingsChange
11C17.588%-0.30%
22Java14.959%-2.35%
33Objective-C9.130%-1.07%
44C++6.104%-2.16%
55C#4.328%-1.29%
66PHP2.746%-2.53%
710changeJavaScript2.433%+0.58%
88Python2.287%+0.08%
911changeVisual Basic .NET2.235%+0.55%
1012changePerl1.826%+0.75%
11-changeVisual Basic1.802%+1.80%
1238changeR1.630%+1.38%
139changeTransact-SQL1.473%-0.40%
1417changePL/SQL1.330%+0.73%
1518changePascal1.173%+0.58%
1615changeDelphi/Object Pascal1.118%+0.43%
17-changeSwift1.065%+1.06%
1813changeRuby0.978%+0.05%
1920changeF#0.888%+0.32%
2014changeMATLAB0.867%+0.16%

Fuente: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

martes, 2 de diciembre de 2014

Calcular la edad con PHP

He visto en algunos posts que para calcular la edad en años de una persona hay problemas si la fecha de nacimiento es menor que el año 1970. Eso se debe a que pasan la fecha a tiempo UNIX y después hacen una resta y la vuelven a convertir a años.

Lo más simple que he visto es esta función que os dejo aquí, que simplemente coge primero la parte de meses y días de la fecha actual y la de nacimiento y mira si ya hemos pasado o todavía no. Después resta la parte de años de ambas fechas y finalmente ajusta.

function getAge($birthdate){
 $adjust = (date("md") >= date("md", strtotime($birthdate))) ? 0 : -1; // Si aún no hemos llegado al día y mes en este año restamos 1
 $years = date("Y") - date("Y", strtotime($birthdate)); // Calculamos el número de años 
 return $years + $adjust; // Sumamos la diferencia de años más el ajuste
}

Se puede complicar más haciendo que el formato de entrada se pueda configurar pero lo hemos puesto en formato inglés YYYY-MM-DD. Los resultados son los siguientes:

// Hoy es 2 de diciembre de 2014
echo getAge("1919-02-21"); // devuelve 95

echo getAge("1952-12-07"); // devuelve 61

Espero que os sirva.