elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  De un archivo con comandos a array ? (solved)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: De un archivo con comandos a array ? (solved)  (Leído 3,265 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
De un archivo con comandos a array ? (solved)
« en: 11 Enero 2011, 21:59 pm »

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:

Código:
# 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
  1. <?php
  2. $file= 'comandos.txt';
  3.  
  4. $fp= fopen( $file, "r");
  5. while(!feof($fp) )
  6. {
  7. $buf= fgets( $fp, 2048); # leemos
  8. # si es distinto de comentario, vacio o salto de linea, leemos
  9. if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
  10. echo $buf; # estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
  11. }
  12. ?>

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 ?


« Última modificación: 12 Enero 2011, 21:44 pm por Diabliyo » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: De un archivo con comandos a array ?
« Respuesta #1 en: 11 Enero 2011, 22:40 pm »

Código
  1. <?php
  2. $file= 'comandos.txt';
  3.  
  4. $fp= fopen( $file, "r");
  5. while(!feof($fp) )
  6. {
  7. $buf= fgets( $fp, 2048); # leemos
  8. # si es distinto de comentario, vacio o salto de linea, leemos
  9. if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
  10. $comandos[] = $buf; # estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
  11. }
  12. print_r($comandos);
  13. ?>

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


En línea

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


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: De un archivo con comandos a array ?
« Respuesta #2 en: 11 Enero 2011, 23:10 pm »

Código
  1. <?php
  2. $file= 'comandos.txt';
  3.  
  4. $fp= fopen( $file, "r");
  5. while(!feof($fp) )
  6. {
  7. $buf= fgets( $fp, 2048); # leemos
  8. # si es distinto de comentario, vacio o salto de linea, leemos
  9. if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
  10. $comandos[] = $buf; # estoy imprimiendo comando, PERO QUIERO METERLO A UN ARRAY
  11. }
  12. print_r($comandos);
  13. ?>

Salida:
Código:
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
  1. <?php
  2. $i=0; # contador
  3. $arr= array(); # arreglo
  4. while(!feof($fp) )
  5. {
  6. $buf= fgets( $fp, 2048); # leemos
  7. # si es distinto de comentario, vacio o salto de linea, leemos
  8. if( strcmp($buf[0], "#") && strcmp($buf[0], "") && strcmp($buf[0], "\n") )
  9. {
  10. $x= explode( "=", $buf ); # explotando
  11. $arr[$i]= array( $x[0]=>$x[1] ); # metemos al arreglo
  12. $i++; # incremento
  13. }
  14. }
  15. ?>
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: De un archivo con comandos a array ?
« Respuesta #3 en: 11 Enero 2011, 23:12 pm »

Código:
# archivo: comandos.txt
# contenido:

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

Código
  1. <?php
  2.  
  3. $data = '
  4. # archivo: comandos.txt
  5. # contenido:
  6.  
  7. <contenido>
  8. color=#000000
  9. font=mifont.ttf
  10. web=www.mipagina.com
  11. </contenido>
  12. ';
  13.  
  14. $data = explode('<contenido>', $data);
  15. $data = explode('</contenido>', $data[1]);
  16. $data = explode('=', $data[0]);
  17. foreach($data as $var => $val){
  18. $out[trim($var)] = trim($val);
  19. }
  20. $data = $out;
  21. unset($out, $var, $val);
  22.  
  23. print_r($data);
  24.  
  25. ?>

Resultado:
Código:
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>
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines