3ENGINE

Programación y otros cachivaches

Archivo

Página 27/104

Tecnologia

Split de una cadena separada por comas y acotada por dobles comillas (PHP y C#)


Si necesitais dividir una cadena en una matriz, donde los elementos de la cadena estan separados por coma (,) y opcionalmente un elemento puede estar acotado por doble comillas («). Una expresión regular y un poco de código extra puede ayudaros.

Código de prueba en c#:

     MatchCollection mc = Regex.Matches(
        ",\"hola desde\",\"una,dos,tres\",1,2,3,lineas,de codigo"+",", 
        "([^,\"]*,|\"[^\"]*\",)");
     foreach (Match m in mc)
     {
         System.Console.WriteLine(m.Value.Trim(',').Trim('"'));                               
     }

Función en PHP:

    function split_cadena_acotada($texto)
    {
        preg_match_all("([^,\"]*,|\"[^\"]*\",)", $texto.",", $matching_data);
        array_walk($matching_data[0], 'trim_value');
        return $matching_data[0];
    }
    function trim_value(&$value)
    { 
        $value = trim($value);
        $value = trim($value,',');
        $value = trim($value,'"');
    }



Tecnologia

Activar y desactivar todas las restricciones de tabla en Oracle para eliminar datos


Si necesitas eliminar todos los datos de una base de datos, y no tienes ganas de pensar en el orden de los «delete from tablaXYS» para cumplir con las restricciones de integridad. Lo mas rápido es desactivar las foreign keys, eliminar todas las tablas y dejar otra vez las foreign keys como estaban.

Activar y desactivar todas las restricciones de tabla en Oracle

Deshabilitar todas las foreign keys de todas las tablas:

BEGIN  
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name    
   FROM user_constraints c, user_tables t    
   WHERE c.table_name = t.table_name    
   AND c.status = 'ENABLED'
   AND c.CONSTRAINT_TYPE = 'R'     
   ORDER BY c.constraint_type DESC)   
LOOP     
  dbms_utility.exec_ddl_statement('alter table ' || c.owner || 
  '.' || c.table_name || 'disable constraint ' || c.constraint_name);   
END LOOP; 
END;

Volver a habilitar todas las foreign keys de todas las tablas:

BEGIN  
  FOR c IN
  (SELECT c.owner, c.table_name, c.constraint_name
   FROM user_constraints c, user_tables t
   WHERE c.table_name = t.table_name
   AND c.status = 'DISABLED'
   AND c.CONSTRAINT_TYPE = 'R'    
   ORDER BY c.constraint_type)
LOOP
  dbms_utility.exec_ddl_statement('alter table ' || c.owner || 
   '.' || c.table_name || ' enable constraint ' || c.constraint_name);   
END LOOP; 
END;

Recursos
Disable all table constraints in Oracle




Tecnologia

line-feed o carriage-return en Oracle


En Oracle, para añadir a un texto un line-feed o un carriage-return:

  SELECT '"' || chr(10) || '"' FROM DUAL;
  SELECT '"' || chr(13) || '"' FROM DUAL;

De modo que para buscar, por ejemplo, un texto que contenga un line-feed:

  SELECT * FROM MITABLA WHERE MICAMPO LIKE '%'||chr(10)||'%';



Tecnologia

Instalar Apache+MySQL+PHP+Extras en xubuntu 10.10


Para instalar Apache, MySQL y PHP tal cual:

sudo apt-get install mysql-server-5.1 apache2 php5 php5-mysql libapache2-mod-auth-mysql

Si deseamos debugar PHP es necesario instalar Xdebug:

apt-get install php5-xdebug

Por defecto está desactivado el modo debug, para activarlo editar /etc/php5/conf.d/xdebug.ini en modo administrador y añadir

xdebug.remote_enable=on

Captura de pantalla

Si deseamos instalar curl:

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

Para reiniciar Apache y MySQL:

sudo /etc/init.d/apache2 restart
sudo service mysql restart

Para verificar que todo está bien y ver la configuración de PHP ir a /var/www/ y crear un archivo de nombre info.php con el siguiente contenido:

<?
phpinfo();
?>

Después escribimos http://localhost y debe aparece algo como esto:

Si deseamos que cada usuario tenga su carpeta de para desarrollar al estilo http://localhost/~usuario en este enlace explican cómo configurarlo.

Si utilizamos Netbeans, instalar el plugin de PHP. Ir a Herramientas>Complementos pestaña Complementos Disponibles e instalar el complemento PHP. Ahora ya podemos crear y debugar proyectos PHP desde Netbeans.

Referencias:

http://www.technoblog.com.ar/index.php/2010/05/como-instalar-apachemysqlphp-en-ubuntu-10-04/
http://blogs.oracle.com/netbeansphp/entry/ubuntu_php_netbeans
http://web.asistenciainformatica.org/2010/08/configurar-curl-en-ubuntu.html