juanmaloco
Usuario (Argentina)

Aló a todoss Para aquellos re interesados con el desarrollo en general, resulta que en mi trabajo, tuve que encontrar solución a éste interrogante no tan fácil de resolver para un iniciante (like me), decidí buscar funciones que me ayuden a resolverlo, es más una cuestión de ingenio me parece. Finalmente, como era un poco desordenado, decidí crear una clase de php, la cual ayuda a dejar claro qué estamos haciendo realmente. Aclarar que no todo el source es de mi autoría, sino una recopilación de fuentes, la más grosa está citada en el archivo, el resto sólo son porciones... Se los dejo junto con un ejemplo de uso. listar_carpeta.php <?php /* Ésta clase es un conjunto de funciones encontradas, autores debajo. * * Los parámetros a indicar son los siguientes: * $ruta_carpeta: requerido. debe expresarse en formato absoluto. * ej: Linux: "/opt/lampp/htdocs/test/" * ej Win: "C:xampphtdocstest" * * $size_format: requerido. "B", "KB", "MB", "GB",... * $decimals: opcional, por defecto, dos decimales. * * Llamada alternativa a la func orderByDate(): parámetros opcionales * "desc" o "asc". por defecto "desc". * * Para obtener o asignar el array con el listado resultante, se deberá * llamar a getResultList() * * Las claves resultantes son "nombre", "size" y "fecha" * * Ejemplo de uso dentro de un foreach al array: * echo "El archivo " . $item["nombre"] . " pesa " . $item["size"] . " y se creó el " . date('d-m-Y', $item['fecha']) . "<br>"; * * @author Juan Manuel Fernandez (clase, constructor, orderByDate, getListAndProp). * @author JR de if-not-true-then-false.com (_getFormat, con modificaciones). * @version 1.1 */ class ListFolder { private $route; private $size_format; private $decimals; private $bytes; private $units; private $value; private $pow; private $lista; private $lista_con_propiedades; private $result; function __construct($ruta_carpeta, $size_format = "", $decimals = 2) { $this->size_format = $size_format; $this->decimals = $decimals; $this->result = $this->_getListAndProp($ruta_carpeta); } private function _getListAndProp($route) { $this->route = $route; $this->lista = array_diff(scandir($this->route), array('..', '.')); $this->lista_con_propiedades = array(); foreach($this->lista as $item) { array_push($this->lista_con_propiedades, array( 'nombre' => $item, 'size' => $this->_getFormat(filesize($this->route . $item)), 'fecha' => filemtime($this->route . $item) ) ); } return $this->lista_con_propiedades; } private function _getFormat($bytes) { $this->bytes = $bytes; $this->units = array('B' => 0, 'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4, 'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8); $this->value = 0; if ($this->bytes > 0) { // Generar prefijo automático por bytes // Si se da prefijo erróneo: if ( ! array_key_exists($this->size_format, $this->units)) { $this->pow = floor(log($this->bytes)/log(1024)); $this->size_format = array_search($this->pow, $this->units); } // Calcular el valor de los bytes por prefijo $this->value = ($this->bytes/pow(1024, floor($this->units[$this->size_format]))); } if (!is_numeric($this->decimals) || $this->decimals < 0) { $this->decimals = 2; } // Formatear salida return sprintf('%.' . $this->decimals . 'f ' . $this->size_format, $this->value); } public function orderByDate($orientation = "desc") { function ordenar($a, $b) { return $a['fecha'] - $b['fecha']; } // La función usort redefine en forma directa al array contenido en la variable. // Si hay dudas, php.net usort($this->result, 'ordenar'); if ($orientation == "desc") { $this->result = array_reverse($this->result); } } public function getResultList() { return $this->result; } // End class } ejemplo.php (primero incluir el archivo de la clase, directamente ó con include()) <?php // Incluímos el archivo que contiene la clase include("listar_carpeta.php"); // Creamos un objeto a partir de la clase. $lista_archivos = new ListFolder("/directorio/para/listar/", "KB", 2); $lista_archivos->orderByDate(); // Ésto es para ordenar por fecha y es opcional. $lista_desc = $lista_archivos->getResultList(); // Obtener el array resultante. // Ántes de utilizarlo en una tabla por ejemplo, podemos probar si funciona de ésta forma: print_r($lista_desc); // Ó vamos probando las claves que nos devuelve en un ciclo foreach: foreach($lista_desc as $item) { echo "El archivo " . $item["nombre"] . " pesa " . $item["size"] . " y se creó el " . date('d-m-Y', $item['fecha']) . "<br>"; } Espero sea de utilidad, sobre todo por seguir el modelo de POO Tengo un amigo que vigila si comentás o no...

No es Novedad encontrar youtubers que se animen a las mas excéntricas y arriesgadas pruebas que se nos puedan pasar por la cabeza. Pero ésta vez nuevamente le toca a los que saben del tema. La ISS (Estación Espacial Internacional) recibió nuevos juguetes, y uno de ellos es una sorprendente cámara de ultra alta definición Epic Dragon, fabricada por la compañía de cine digital RED, que es capaz de capturar vídeo en formato 6K, es decir, bajo una resolución de 6144 x 3160 píxeles. Para darnos una idea, lo podemos comparar con Full HD, que posee una resolución de 1920 x 1080 píxeles, y que es el formato más popular al día de hoy. Esta cámara llegó a la ISS el pasado mes de enero, y desde entonces ha sido parte importante de la estación, ya que posee una capacidad de grabar en hasta 300 cuadros por segundo, algo que la hace ideal para capturar eventos dinámicos, así como una poderosa herramienta en investigaciones científicas. link: https://www.youtube.com/watch?v=Vx0kvxqgC1c Este experimento ya se había hecho hace un par de meses, sólo que sin pintura, donde podemos ver con mayor detalle como la tableta efervescente explota en el interior de la bola de agua y desprende pequeñas partículas de gas. Una belleza. link: https://www.youtube.com/watch?v=bKk_7NIKY3Y Hoy día, los astronautas están aprovechando esta cámara para mostrarnos verdaderas maravillas en ultra alta definición, curiosidades que probablemente nos habíamos preguntado, pero no sabíamos a ciencia cierta cómo funcionaba. Si tenés algún otro video de los mismos fenómenos, compartilos en los comments. Los veo por ahí cabezas.
Bueno taringueros de ley... Acá la solución a los que muchos buscan (muchos no lo saben).. -Webhosting con autoinstaller GRATIS y SIN publicidad, como suele pasar... -Dominio .com.ar PROPIO y gratis! -digamos que una web completa, propia y sin publicidad, sin gastar nada! Aclaro todo esto, porque la mayoría de los hosts se presumen "sin publicidad" y cuando subis tu página, te ensartan tremendo popup emergente o banners indeseados... ::ANTES que nada, hay que hacerse una cuenta de Gmail o usar una existente para usar en todos los trámites:: 1° Registrarnos en Freehostia: http://www.freehostia.com/ pidiendo el servicio gratuito (chocolate) el cual no solo tiene mas tamaño que algunos otros de pago, sino que no nos mete banners ni carteles de publicidad en la página... ¬¬ -luego cuando nos pide el dominio, elegimos use my existing domain y ponemos nuestro dominio a registrar (antes nos fijamos en el nic si esta disponible) cuando estemos en el cpanel, los dns a utilizar en el nic estan en la seccion dominios 2° Dominio .com.ar: éste se consigue en la web del administrador de nombres de dominio del país http://www.nic.ar este trámite es gratuito e independiente de los .com (viene todo junto .com.ar) (en Taringa! hay muchos tutoriales sobre como hacer este trámite asi que no los incluiré en este post por ese mismo motivo) teniendo en cuenta que los DNS e IPs incluidos en el trámite deben ser los que proporciona el servicio de hosting que usaremos (Freehostia en este caso). -hay que tener una importante consideracion: es mejor iniciar sesión en el cpanel con el boton v2 (debajo del logueo) esto nos permite ver los dns a utilizar en la seccion dominios... 3° y bueno... subimos nuestro sitio de la manera que queramos (ftp, programa, gestor de contenidos como joomla, wordpress, etc..) y Voila!! no es mas que eso, a menos que alguien tenga alguna duda sobre los trámites...