• Martes 30 de Abril de 2024, 15:22

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - objetivophp

Páginas: [1]
1
PHP / [Código Fuente] Nueva Version Deame3p
« en: Domingo 10 de Abril de 2011, 04:23 »
Bueno en mi blog hace tiempo que tengo una nueva version de la rutina que exporta e importa de excel a mysql. Ademas esta otorga compatibilidad con excel 2007 y 2010 a parte de los anteriores.  En definitiva puede extraer datos y generar xlsx.
http://objetivophp.com

Saludos

2
PHP / [Código Fuente] Recorrer Directorio
« en: Lunes 6 de Diciembre de 2010, 03:48 »
Código: [Seleccionar]
<?php
/**
 * Clase Directorio.
 * Se encarga de recorrer directorios y proporcionar informacion de los archivos y
 * directorios que contiene.
 *
 * @package     archivos creado en el projecto opet
 * @copyright   2010 - ObjetivoPHP
 * @license     Gratuito (Free) http://www.opensource.org/licenses/gpl-license.html
 * @author      Marcelo Castro (ObjetivoPHP)
 * @li<x>nk        objetivophp@******.***.**
 * @version     0.4.0 (24/03/2009 - 28/11/2010)
 */
class Directorio
{
    
/**
     * Especifica que tipo de listado se retornara.
     * En este caso solo se listan los directorios.
     */
    
const OP_LIST_DIRECTORIOS 1;

    
/**
     * Especifica que tipo de listado se retornara.
     * En este caso solo se listan los archivos.
     */
    
const OP_LIST_ARCHIVOS    2;

    
/**
     * Especifica que tipo de listado se retornara.
     * En este caso lista directorios y archivos.
     */
    
const OP_LIST_AMBOS       3;

    
/**
     * Solo se accedera de este directorio hacia abajo a sus hijos no se listan
     * los padres del directorio. Es el directorio ba<x>se.
     * @var string
     */
    
private $_dirba<x>se './';

    
/**
     * Marca cuantos directorios hacia abajo listara. Con cero solo listara el
     * directorio ba<x>se.
     * @var integer
     */
    
private $_profundidadEscaneo 0;

    
/**
     * Configuramos que tipo de resultados queremos. Solo archivos solo
     * directorios o retorna ambos.
     * @var integer
     */
    
private $_listarDir 3;

    
/**
     * Contiene los tipos de archivos que se listaran.
     * @var array
     */
    
private $_tipoArchivos = array();

    
/**
     * Guarda los resultados de la busqueda.
     * @var array
     */
    
private $_resultados = array();
    
    
/**
     * Metodo __construct.
     * @param   string $dirExploracion  Directorio ba<x>se de la exploracion.
     *                                  No se puede utilizar ../ en caso de necesitar
     *                                  y hacia atras utilizar direcciones absolutas.
     * @return  void
     */
    
public function  __construct($dirExploracion)
    {
        if (
strpos('../' $dirExploracion)) {
            
trigger_error('Directorio de Exploracion no valido.' E_USER_ERROR);
        }
        
$this->_dirba<x>se $dirExploracion;
        
date_default_timezone_set('America/Montevideo');
    }

    
/**
     * Metodo setProfundidadEscaneo.
     * @param   integer $profundidad    Cantidad de directorios que se analizaran
     *                                  en cascada.
     * @return  void
     */
    
public function setProfundidadEscaneo($profundidad 0)
    {
        
$this->_profundidadEscaneo = (int) $profundidad;
    }

    
/**
     * Metodo setListarDirectorios.
     * @param   integer     $dir 1 directorios 2 archivos 3 ambos.
     * @return  void
     */
    
public function setListarDirectorios($listado 3)
    {
        switch (
$listado) {
            case 
Directorio::OP_LIST_DIRECTORIOS:
                
$this->_listarDir   Directorio::OP_LIST_DIRECTORIOS;
                break;
            case 
Directorio::OP_LIST_ARCHIVOS:
                
$this->_listarDir   Directorio::OP_LIST_ARCHIVOS;
                break;
            case 
Directorio::OP_LIST_AMBOS:
                
$this->_listarDir   Directorio::OP_LIST_AMBOS;
                break;
            default :
                
$this->_listarDir   Directorio::OP_LIST_AMBOS;
        }
    }

    
/**
     * Metodo addTiposArchivosListar.
     * @param   string  $extencion  Extencion de los archivos a listar.
     * @return  void
     */
    
public function addTiposArchivosListar($extencion)
    {
        
$this->_tipoArchivos[] = addslashes($extencion);
    }

    
/**
     * Metodo listar.
     * Enruta las peticiones de listado al metodo correspondiente y retorna
     * los datos obtenidos.
     * @return array
     */
    
public function listar()
    {
        switch (
$this->_listarDir) {
            case 
Directorio::OP_LIST_DIRECTORIOS:
                
$this->_listarDirectorios();
                break;
            case 
Directorio::OP_LIST_ARCHIVOS:
                
$this->_listarArchivos();
                break;
            case 
Directorio::OP_LIST_AMBOS:
                
$this->_listarTodo();
                break;
            default :
                
$this->_listarTodo();
        }
        return 
$this->_resultados;
    }


    
/**
     * Metodo ordenar.
     * Ordena los resultados de acuerdo a la clave elegida.
     * @param   string  $clave  Clave por la cual se quiere ordenar.
     * @param   boolean $asc    true para ascendente false para descendente.
     * @return  array
     */
    
public function ordenar($clave 'name' $asc true)
    {
        if (empty(
$this->_resultados)) {
            return 
false;
            
//trigger_error('Primero debe usar la funcion listar o getNombresArchivos' E_USER_ERROR);
        
}

        
$tiposOrden = array('date' 'dateUpdate' 'size' 'hash' 'name' 'nameSort' 'extencion' );
        
$ordenarPor = (in_array($clave $tiposOrden))? $clave 'name';
        
$ascDesc    = ($asc)? SORT_ASC SORT_DESC;
        
$caracter   0;

        foreach (
$this->_resultados as $ordenado) {
            
$tmpArray[] = $ordenado[$ordenarPor];
            
$caracter   is_string($ordenado[$ordenarPor])? $caracter+$caracter;
        }
        
        
$numero     = ($caracter)? SORT_STRING SORT_NUMERIC;

        
array_multisort($tmpArray $ascDesc $numero $this->_resultados);
        return 
$this->_resultados;
    }

    
/**
     * Metodo _listarArchivos.
     * Genera el arreglo de resultados correspondiente solo a archivos.
     * @return void
     */
    
public function _listarArchivos()
    {
        
$objIterator = new RecursiveIteratorIterator($obj_Directory = new RecursiveDirectoryIterator($this->_dirba<x>se)
                                                     
RecursiveIteratorIterator::SELF_FIRST);
        
$objIterator->setMaxDepth($this->_profundidadEscaneo);
        
// Recorro los Archivos.
        
foreach ($objIterator as $file) {
            if (
is_file($file)) {
                
$ext        substr($file strripos($file '.')+1);
                if (
in_array($ext $this->_tipoArchivos)) {
                    
$this->_resultados[$file->__toString()] = array('date'      => date("Y-m-d H:i"$obj_Directory->getATime())
                                                                    
'dateUpdate'=> date("Y-m-d H:i"$obj_Directory->getMTime())
                                                                    
'size'      => filesize($file)//$obj_Directory->getSize()
                                                                    
'hash'      => sha1_file($file)
                                                                    
'name'      => substr($file strripos($file DIRECTORY_SEPARATOR )+1)
                                                                    
'nameSort'  => strtolower(substr($file strripos($file DIRECTORY_SEPARATOR )+1))
                                                                    
'extencion' => substr($file strripos($file '.' )+1));
                }
            }
        }
        
ksort($this->_resultados);
    }

    
/**
     * Metodo _listarDirectorios.
     * Genera el arreglo de resultados correspondiente solo a directorios.
     * @return void
     */
    
public function _listarDirectorios()
    {
        
$objIterator = new RecursiveIteratorIterator($obj_Directory = new RecursiveDirectoryIterator($this->_dirba<x>se)
                                                     
RecursiveIteratorIterator::SELF_FIRST);
        
$objIterator->setMaxDepth($this->_profundidadEscaneo);
        
// Recorro los directorios.
        
foreach ($objIterator as $file) {
            if (
is_dir($file)) {
                
$this->_resultados[$file->__toString()] = array('date'      => date("d-m-Y H:i"$obj_Directory->getATime())
                                                                
'dateUpdate'=> date("d-m-Y H:i"$obj_Directory->getMTime()));
            }
        }
    }

    
/**
     * Metodo _listarTodo.
     * Genera el arreglo de resultados correspondiente a directorios y archivos.
     * @return void
     */
    
public function _listarTodo()
    {
        
$this->_listarDirectorios();
        
$this->_listarArchivos();
        
ksort($this->_resultados);
    }

    
/**
     * Metodo getNombresArchivos.
     * Retorna solo los nombre de archivos.
     * @return array
     */
    
public function getNombresArchivos()
    {
        
$objIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->_dirba<x>se)
                                                     
RecursiveIteratorIterator::SELF_FIRST);
        
$objIterator->setMaxDepth($this->_profundidadEscaneo);
        
// Recorro los Archivos.
        
foreach ($objIterator as $file) {
            if (
is_file($file)) {
                
$ext        substr($file strripos($file '.')+1);
                if (
in_array($ext $this->_tipoArchivos)) {
                    
$this->_resultados[] = substr($file strripos($file DIRECTORY_SEPARATOR )+1);
                }
            }
        }
        return 
$this->_resultados;
    }

    
/**
     * Metodo formatearSize.
     * Formatea la salida del tamaño de un archivo a una unidad mas estandarizada.
     * @version Desde Version 0.4.0 (28/11/2010)
     * @param   integer $tamanio    Tamaño del archivo en Bytes.
     * @param   integer $decimales  Decimales de la salida.
     * @param   boolean $uMedida    Si se pone la unidad de medida.
     * @return  string              Cadena Formateada.
     */
    
public static function formatearSize($tamanio $decimales 2  $uMedida true) {
        
$unidad     = array(' B' ' KB' ' MB' ' GB' ' TB' 'PB' 'EB' 'ZB' 'YB');
        
$potencia   floor(log((int)$tamanio) / log(1024));
        
$formatSize number_format($tamanio pow(1024$potencia) (int) $decimales);
        
$formatSize = ($uMedida)? $formatSize $unidad[$potencia] : $formatSize;

        return 
$formatSize;
    }
}


Para ver su utilizacion: http://objetivophp.com/?p=100

Autor: objetivophp.com

http://objetivophp.esp.st

Descarga: http://objetivophp.com/?p=100

3
PHP / [Código Fuente] Exportar
« en: Lunes 9 de Noviembre de 2009, 04:16 »
debes de descomprimir el codigo en C:\\AppServ\\www
en http://sics.webcindario.com/?p=89 podras encontrar la ultima version... 5.0.1

4
PHP / [Código Fuente] DEAME3P - Exporta archivos excel 2007 a MySQL
« en: Lunes 7 de Septiembre de 2009, 23:31 »
Deame3p es una rutina programada en PHP 5 que exporta datos contenidos en archivos Excel 2007 (Probado con versiones mayores a Excel 2003) a MySQL.
Las diferencias con otras soluciones de exportación son básicamente las siguientes:

    * nos permite la vinculación o asociación de los campos de la base de datos MySQL con los nombres de las columnas del archivo Excel no siendo necesario que sus nombres coincidan.
    * Intenta la búsqueda de claves foráneas en la base de datos para así proporcionarnos opciones de exportación realizado para tablas tipo MyISAM por lo cual la clave foránea debe tener el mismo nombre que en la tabla donde es clave principal o única.
    * Con los campos AUTOINCREMENT nos da la posibilidad de mantener los datos de la planilla Excel o que la base siga numerando sola.(Se aconseja esta ultima opción para no provocar errores por duplicación).
    * Soporta dos modos INSERCION pura de datos o si una clave se Duplica se puede ACTUALIZAR esa línea.
    * Contiene funciones básicas de formateo de campos entre ellos se encuentran varchar Date DateTimeTimeStamp Time Year(4) tinyint smallint mediumint int bigint bool boolean bit floatdouble set y enum. Además de incluir un método por defecto para los campos no implementados.
    * En el caso que administremos el servidor web permite la configuración de variables sensibles a la rutina como el consumo de memoria y el límite de tiempo máximo que puede ejecutarse.
    * Nos permite codificar la entrada a UTF8 o dejarla como se encuentra en la planilla Excel.

Deame3p debe ser usado para tablas ya existentes no crea tablas si no que inserta registros en ellas.

Autor: ObjetivoPHP

http://objetivophp.esp.st

5
PHP / Re: MVC en php con mysql
« en: Lunes 7 de Septiembre de 2009, 01:55 »
Aquí hay dos partes que van explicando de los mas básico a algo mas depuradito de como armar el  patrón MVC.
jourmoly·com·ar/introduccion-a-mvc-con-php-primera-parte/
jourmoly·com·ar/introduccion-a-mvc-con-php-segunda-parte/
Saludos.
cambia el · (punto medio) por el . punto comun

6
PHP / Re: cerrar una conexion con BD al cerrar ventana
« en: Lunes 16 de Marzo de 2009, 05:30 »
quizás abriste una conexión con el comando mysql_pconnect, en este caso tu no puedes hacer nada para cerrarlo es el servidor que se encarga de eso después de cierto tiempo.

En el manual de php marca las diferencias con mysql_connect
Primero, durante la conexión, la función intenta primero encontrar un enlace persistente abierto con el mismo host, usuario y password. Si lo encuentra, devuelve el identificador de enlace en lugar de abrir otra conexión.

Segundo, la conexión no será cerrada cuando acabe la ejecución del script. El enlace permanecerá abierta para ser usado en el futuro (mysql_close() no cierra el enlace establecido con mysql_pconnect()).

7
PHP / Re: PHP vs Ruby On Rails
« en: Sábado 28 de Febrero de 2009, 18:45 »
Creo que la pregunta correcta no es PHP vs Ruby On Rails pues la ultima opción es un lenguaje y un FrameWork, lo correcto seria Por Ejemplo PHP ZendFramework vs Ruby On Rails. Bueno por lo demás,  no puedo dar una opinión puesto que no conozco Ruby On Rails...

8
PHP / Re: Duda sintaxis
« en: Viernes 26 de Diciembre de 2008, 17:22 »
Cuando se precede una funcion por un simbolo de @ significa que si ocurre un error al ejecutar dicha funcion el error no sera desplegado por pantalla....
es decir no te apareceran por ejemplo los Warnings...
Saludos
Feliz Navidad

9
PHP / Re: Insertar en una base de datos Relacional
« en: Domingo 2 de Noviembre de 2008, 20:21 »
Si lo que quieres es obtener el id insertado recientemente para una conexion se debe usar  LAST_INSERT_ID();
Es decir si haces un ingreso en una tabla con campo autoincremental y quieres usar el id que se genero en esa tabla la siguiente consulta es SELECT LAST_INSERT_ID(); puesto que esta es nativa de MySQL y trae el ultimo id para la conexion y no el ultimo id de la tabla por lo menos es lo que entiendo del manual de MySQL que difiere de mysql_insert_id de php que nos trae el ultimo id de cualquier conexion..

10
PHP / Re: Cómo notificar cuando ingreso una nuevo registro
« en: Lunes 13 de Octubre de 2008, 19:08 »
Si estas en el sistema creo que la unica forma es tener un ajax que se largue cada cierto intervalo de tiempo y verifique si se inserto algo en la base si es asi te lo comunica...

11
PHP / Re: Identificar procedencia del visitante
« en: Viernes 3 de Octubre de 2008, 18:30 »
Lo deberias hacer a traves de la IP del visitante, pues cada pais tiene asignada un conjuntos de IP aunque creo que se puede engañar el numero de IP.... Existe una funcionalidad en php que se llama geoIP que te puede servir... Busca en la documentacion oficial
book.geoip

Saludos

12
PHP / Re: Enviar mails mediante post error
« en: Domingo 7 de Septiembre de 2008, 21:34 »
El error esta en el encabezado del formulario pon enctype="multipart/form-data" o no lo pongas pues text/plain te envia como si fuese un archivo de texto.

13
PHP / [Código Fuente] Convertidor de bases Numericas
« en: Jueves 21 de Agosto de 2008, 01:15 »
Esta pequeña rutina es capaz de convertir numeros de una base a otra. La capacidad de conversion es de base 2 a  62 utilizando para ellos los digitos del 0 al 9 letras mayusculas de la A a la Z y minusculas de la a a la z.
20/08/2008 Subida version 0.3 arreglo de error  con los ceros finales descubierto por W.Sosa.

Autor: Marcelo Castro

http://objetivophp.esp.st

14
PHP / [Código Fuente] Exportar Excel a MySQL
« en: Martes 12 de Agosto de 2008, 05:39 »
DEAME3P Version 3 Final es una rutina para exportacion de planillas electronicas Excel compatible hasta 2003 a MySQL  permitiendo relacionar columnas(Excel)  con Campos (MySQL) entre otras caracteristicas en caso de campos que sean claves foraneas nos permite cambiar su valor al identificador que tiene en la tabla que es clave.

Autor: Marcelo Castro

http://objetivophp.esp.st

Páginas: [1]