De un archivo con comandos a array ? (solved)

Iniciado por Diabliyo, 11 Enero 2011, 21:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Buenas.

quiero saber como puedo ir armando un array ?

Vaya, tengo un archivo, donde escribo "comandos" y quiero que estos comandos se pasen a un array, claro, conforme voy leyendo los comandos de un archivo.

Por ejemplo, algunos comandos de mi archivo:

# archivo: comandos.txt
# contenido:

color=#000000
font=mifont.ttf
web=www.mipagina.com


Tengo mi codigo que lee del archivo los comandos, ignora toda linea que inice con un SALTO DE LINEA o con un GATITO (comentarios), es este:

Código (php) [Seleccionar]
<?php
$file
'comandos.txt';

$fpfopen$file"r");
while(!
feof($fp) )
{
$buffgets$fp2048); # leemos
# si es distinto de comentario, vacio o salto de linea, leemos
if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
echo $buf# estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
}
?>


En el codigo, podemos ver que lee los comandos y las IMPRIME (ya que es un ejemplo), pero quiero meterlo a un array, vaya, tener una variable vacia e ir metiendole valores a dicha variable, para despues recorrer esa variable con un foreach.

Alguna idea ?

~ Yoya ~

Código (php,10) [Seleccionar]
<?php
$file
'comandos.txt';
 
$fpfopen$file"r");
while(!
feof($fp) )
{
$buffgets$fp2048); # leemos
# si es distinto de comentario, vacio o salto de linea, leemos
if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
$comandos[] = $buf# estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
}
print_r($comandos);
?>


Salida:
Array ( [0] => color=#000000 [1] => font=mifont.ttf [2] => web=www.mipagina.com )
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Diabliyo

Cita de: ~ Yoya ~ en 11 Enero 2011, 22:40 PM
Código (php,10) [Seleccionar]
<?php
$file
'comandos.txt';
 
$fpfopen$file"r");
while(!
feof($fp) )
{
$buffgets$fp2048); # leemos
# si es distinto de comentario, vacio o salto de linea, leemos
if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
$comandos[] = $buf# estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
}
print_r($comandos);
?>


Salida:
Array ( [0] => color=#000000 [1] => font=mifont.ttf [2] => web=www.mipagina.com )

Buena idea.... me sirve..

Pero bueno, aqui les paso un segundo code que me hice:

Código (php) [Seleccionar]
<?php
$i=0# contador 
$arr= array(); # arreglo
while(!feof($fp) )
{
$buffgets$fp2048); # leemos
# si es distinto de comentario, vacio o salto de linea, leemos
if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
{
$xexplode"="$buf ); # explotando
$arr[$i]= array( $x[0]=>$x[1] ); # metemos al arreglo
$i++; # incremento 
}
}
?>

WHK

# archivo: comandos.txt
# contenido:

color=#000000
font=mifont.ttf
web=www.mipagina.com


Código (php) [Seleccionar]
<?php

$data 
'
# archivo: comandos.txt
# contenido:

<contenido>
 color=#000000
 font=mifont.ttf
 web=www.mipagina.com
</contenido>
'
;

$data explode('<contenido>'$data);
$data explode('</contenido>'$data[1]);
$data explode('='$data[0]);
foreach(
$data as $var => $val){
 
$out[trim($var)] = trim($val);
}
$data $out;
unset(
$out$var$val);

print_r($data);

?>


Resultado:
Array (
[color] => #000000
[font] => mifont.ttf
[web] => www.mipagina.com
)


uso:
Citar<a style="color: <?php echo preg_replace('|[^A-Za-z0-9_,-]|i', '', $data['colo']); ?>; font: <?php echo preg_replace('|[^A-Za-z0-9_,-]|i', '', $data['font']); ?>;" href="<?php echo htmlspecialchars($data['web'], ENT_QUOTES); ?>"><?php echo htmlspecialchars($data['web'], ENT_QUOTES); ?></div>