Ver Mensaje Individual
  #15 (permalink)  
Antiguo 13/03/2010, 12:50
destryper
 
Fecha de Ingreso: marzo-2010
Mensajes: 25
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Como ordenar la informacion de un txt?

Cita:
Iniciado por Hidek1 Ver Mensaje
bueno quiza tengas un problema con el formato en el que le entregas los datos ... por que yo acabo de probarlo y los resultados son los esperado..

EDITO: probe en windows y al parecer fue un problema con los saltos de linea deja asi el codigo para que te funcione

Código PHP:
Ver original
  1. <?php
  2. $texto = <<<EOT
  3. Estados unidos
  4. nombre empresa
  5. Dirección
  6. Tel
  7. mail
  8.  
  9.  
  10. Australia
  11. nombre empresa
  12. Dirección
  13. Tel
  14. mail
  15.  
  16.  
  17. España
  18. nombre empresa
  19. Dirección
  20. Tel
  21. mail
  22.  
  23.  
  24. Andorra
  25. nombre empresa
  26. Dirección
  27. Tel
  28. mail
  29. EOT;
  30.  
  31. $texto = preg_split("/([\r\n]{3,})/", $texto);
  32. foreach($texto as $value){
  33.     list($pais) = explode(PHP_EOL, $value);
  34.     $paises[$pais] = $value;
  35. }
  36. ksort($paises);
  37. echo implode(PHP_EOL.PHP_EOL.PHP_EOL, $paises);
  38. ?>

debi haberlo probado en windows para tener la certeza de que funcionaba..

saludos espero ahora si no tengas problemas

Nada sigue igual me da este resultado
[PHP]Estados unidos nombre empresa Dirección Tel mail Australia nombre empresa Dirección Tel mail España nombre empresa Dirección Tel mail Andorra nombre empresa Dirección Tel mail/PHP]

yo en [PHP]echo implode(PHP_EOL.PHP_EOL.PHP_EOL, $paises);/PHP]

lo cambio por [PHP]echo nl2br( implode(PHP_EOL.PHP_EOL.PHP_EOL, $paises));/PHP] para verlo en mas de una linea pero de una forma o de otra sigue sin ordenarlo no me preguntes porque ni idea.. lo extraño es que en la expression regular he probado esto
Código PHP:
preg_split("/([\n\n]{3,})/" o preg_split("/\n\n{3,})/ 
" y alguna que otra conbinacion y me da exactamente el mismo resultado no varia nada no entiendo que ocurre..
Segun he leeido el PHP_EOL significa un salto de linea es decir significa una linea y por lo que veo que haces es que en cada linea identifique el pais..
Pero si no me equiboco puede ser que hay este el error no? ya que cada linea no es un pais... sino cada cierto numero de lineas..
No tengo mucha idea pero por eso queria utilizar el preg_match para buscar el fragmento lo que no sabia ni se como hacer es filtrarlo por paises cosa que a ti te sale como si nada.. por cierto no influira el windows 7? porque estoy con el windows 7... por si acaso.. o el navegador chrome ?saludos..y gracias..


PD:he probado con el firefox y me da el mismo resultado.. en fin raro es..
Voy a salir pero leere en cuanto vuelva mas tarde muchas gracias por tu ayuda.. por lo que veo utilizas linux y alguna diferencia debe de haber ademas utilizo windows 7 y fijo que algo tendra que ver muchas gracias ;)