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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Una pregunta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Una pregunta  (Leído 2,214 veces)
Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
Una pregunta
« en: 16 Enero 2009, 05:45 am »

Quisiera saber, como puedo hacer para que al ingresar datos de la siguiente forma

{{D11, D12, D13}, D2, D3}
 eso me lo pueda tomar como un arreglo

De la siguiente forma:


Código:
<? $Datos = "{{D11, D12, D13}, D2, D3}"; ?>

Lea como

Metod($Datos);


Código:
Salida:

Pos
0     D1 -> D11 - D12 - D13
1     D2 -> D2
2     D3 -> D3

y con D1

D1:

Pos
0     D11 -> D11
1     D12 -> D12
2     D13 -> D13


Bueno, espero se entienda :D y si alguien me puede ayudar con algun metodo para poder tomar lo datos asi me encantaria


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Una pregunta
« Respuesta #1 en: 16 Enero 2009, 07:36 am »

Si te entiendo pero me cuesta un poco hacerlo ya que hay muchas variantes que anteponerse, por ejemplo si
{{D11, D12, D13}, {{D11, D12, D13}, D2, {{D11, D12, D13}, D2, D3}}, D3}
habría que comenzar a hacer explode a todas las llaves de apertura y comenzar desde la última para asegurarnos de que vamos desde el nivel mas alto hasta el inferior e ir uniendo los resultados con las llaves restantes para comenzar a crear el array auqnue eso me complicó un poco  :P.

Ahi te dejo un poco el avance de tu función, yo me voy a dormir porque ya me dieron las 3.36am  :-\

Código
  1. <?php
  2.  
  3. if(!$datos = $_GET['datos']){
  4. $datos = '{{D11, D12, D13}, D2, D3}fuck %&$<>();meequiboqueaaahhh!!!GGrr';
  5. }
  6. echo metodo_hacktor($datos);
  7. echo '<br><br>';
  8. //echo metodo_hacktor($datos, 'D1');
  9.  
  10. function metodo_hacktor($datos, $id_D = false){
  11. /* Eliminamos el primer y último carácter asumiendo
  12.  que son llaves de apertura y cierre y eliminamos los espacios en blanco,
  13.  además permitimos solo los carácteres utiliozados para evitar
  14.  mostrar errores al procesar el contenido. */
  15. $datos = preg_replace('|[^D0-9,{}]|i', '', $datos);
  16. $datos[0] = ' ';
  17. $datos[strlen($datos) - 1] = ' ';
  18. $datos = str_replace(' ', '', $datos);
  19. if(strlen(preg_replace('|[^{}]|i', '', $datos)) % 2 == 0){
  20. /*
  21.   if(!$datos = explode(',', $datos)){
  22.    return 'No hay datos para procesar.';
  23.   }
  24.    */
  25.  // $buffer = explode('{', $datos);
  26.  
  27.  
  28. }else{
  29.  return 'Error de sintaxis, faltan o sobran llaves.';
  30. }
  31.  
  32. /*
  33.  if($id_D){
  34.  
  35.  }
  36.  */
  37. }
  38. /*
  39. Pos
  40. 0     D1 -> D11 - D12 - D13
  41. 1     D2 -> D2
  42. 2     D3 -> D3
  43.  
  44. y con D1
  45. D1:
  46.  
  47. Pos
  48. 0     D11 -> D11
  49. 1     D12 -> D12
  50. 2     D13 -> D13
  51. */
  52. ?>


En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: Una pregunta
« Respuesta #2 en: 16 Enero 2009, 14:38 pm »

Y si utilizas arrays multidimensionales?
En línea

Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
Re: Una pregunta
« Respuesta #3 en: 16 Enero 2009, 15:55 pm »

Y si utilizas arrays multidimensionales?


Lo que pasa es que quiero que eso vaya dentro de un archivo config y para el usuario a mi juicio va a ser mas entendible agrupar los datos con llaves como { } que poniendole Array(); a cada agrupacion.
En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Una pregunta
« Respuesta #4 en: 16 Enero 2009, 23:28 pm »

$variable="dc1,dc2,dc3,gp4";

Luego la parseas con la ',' y la metes en un array.

Suerte
En línea

Xephiro

Desconectado Desconectado

Mensajes: 239



Ver Perfil WWW
Re: Una pregunta
« Respuesta #5 en: 17 Enero 2009, 00:53 am »

Pero, eso tambien generaria arrays de 3 o 4 dimenciones?

osea que yo pusiera

{{{D111,D112}, D12},{D21, D22},D3,D4,D5}

¿?
En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Una pregunta
« Respuesta #6 en: 17 Enero 2009, 01:45 am »

no te sale hacerlo asi?

D11,D12,D13;D21,D22;D31,D32,D33

y haces 2 explodes xD uno con ; y el siguiente con , ;D
En línea

Ojo por ojo, y el mundo acabará ciego.
SaXo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: Una pregunta
« Respuesta #7 en: 17 Enero 2009, 13:21 pm »

Hola,

Bueno, definir la forma correcta de manejar datos en un fichero  depende bastante de cómo pueda usar el fichero ese usuario. Si por ejemplo tuviera un formulario donde el usuario introduce una serie de configuraciones para almacenarlas en un fichero optaría por usar datos serializados para almacenarlos (independientemente si va a un fichero o a base de datos). Si por ejemplo es el usuario el que confecciona el fichero para aplicar una configuración optaría por definir un patrón sencillo para evitar todos los errores que puedan derivarse. La elección de usar llaves para montar la estructura es más que probable que se produzcan muchos errores por que se olvidado de una llave o la estructura no es la correcta.

Así, a bote pronto, usaría una estructura parecida a esta. Aunque luego puede sufrir alguna variación dependiendo de las necesidades.

field_1 : a,b,c,d,e,f
field_2 : d
field_3 : versión 1

Ahora, existen varias formas de leer un fichero y obtener los datos de para formar las estructuras de datos adecuadas.

Voy a probar la forma en la que la suelo hacer ya que siempre me ha dado un buen resultado a la hora de manejar este tipo de ficheros.

$f = fopen('configure.cnf','r');
while ($value = fscanf($f,"%s : %s\n")) {
  list($clave,$valor) = $value;
  $arr[$clave] = explode(',',$valor);
}
fclose($f);

Existen otras formas de hacer esto, que no son ni mejores ni peores, y dependerán de las necesidades que tengamos en el momento para decidir usar una u otra forma.


Un saludo,

SaXo
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