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:
<?php
$file= 'comandos.txt';
$fp= fopen( $file, "r");
while(!feof($fp) )
{
$buf= fgets( $fp, 2048); # 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 ?
<?php
$file= 'comandos.txt';
$fp= fopen( $file, "r");
while(!feof($fp) )
{
$buf= fgets( $fp, 2048); # 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 )
Cita de: ~ Yoya ~ en 11 Enero 2011, 22:40 PM
<?php
$file= 'comandos.txt';
$fp= fopen( $file, "r");
while(!feof($fp) )
{
$buf= fgets( $fp, 2048); # 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:
<?php
$i=0; # contador
$arr= array(); # arreglo
while(!feof($fp) )
{
$buf= fgets( $fp, 2048); # leemos
# si es distinto de comentario, vacio o salto de linea, leemos
if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
{
$x= explode( "=", $buf ); # explotando
$arr[$i]= array( $x[0]=>$x[1] ); # metemos al arreglo
$i++; # incremento
}
}
?>
# archivo: comandos.txt
# contenido:
color=#000000
font=mifont.ttf
web=www.mipagina.com
<?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>