Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/06/2011, 16:09
Avatar de djmashe
djmashe
 
Fecha de Ingreso: julio-2007
Ubicación: Posadas, Misiones
Mensajes: 52
Antigüedad: 16 años, 10 meses
Puntos: 2
Pregunta Respuesta: Crear archivo .INI con datos

Cita:
Iniciado por pateketrueke Ver Mensaje
puedes crear un INI a partir de un arreglo asociativo... es muy fácil

Código PHP:
<?php
$arreglo 
= array(
   
'cuenta'=>array('nick'=>'alguno','pass'=>'encriptame'),
   
'opciones'=>array('encriptar'=>1,'ip'=>'127.0.0.1')
);

/**
 * (datos[, archivo])
 *
 * Devuelve y/o escribe formato INI desde un arreglo
 */
function ini($data$file null)
{
    
$output = array(); // el INI
    
foreach ($data as $name => $section)
    {
        if (
is_array($section))
        {
            
$output[] = "[{$name}]"// [foo]
            
foreach ($section as $key => $val)
            {
                
$output[] = "$key=$val"// foo=bar
            
// agregamos un salto de linea
            
$output[]='';
        }
    }
    
// pegamos el INI
    
$ini join("\n"$output);
    if (
$file && is_dir(dirname($file)))
    {
        
$tmp fopen($file'w+');
        
fwrite($tmp$ini);
        
fclose($tmp);
    }
    return 
$ini;
}


// ej.
echo ini($arreglo);
?>
y listo, ini() devuelve el arreglo, en este formato... solo resta que guardes esta variable en un archivo de texto... suerte!
Muy interesante el script, ahora tengo una consulta: ¿de que manera podria modificar el array para agregar como parametros a los comentarios del tipo ini, o sea, los punto y coma (;)?

ejemplo:

[BASE_DATOS]
; tipo de motor de base de datos: mysql, pgsql
driver = pgsql
; permitir conexiones persistentes: true | false
persistent = false
; direccion del host al que apunta el sistema
host = localhost
; usuario base de datos
user = root
; contraseña del usuario
password = 12345
; nombre de la base de datos
database = sistemas
; prefijo usado para el nombre de las tablas
prefix = pg_