Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2014, 06:44
Avatar de HackID1
HackID1
 
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 2 meses
Puntos: 17
Pregunta Separar cadenas de cada linea de un fichero de texto

Hola a todos los Foreros!!!.

Ando realizando una aplicación en PHP la cual debe leer un fichero de texto que contiene varios datos.
Bien cada campo de los datos va separado por un tabulador. son 6 campos y luego va la siguiente linea. Todas igual 6 campos separados por TAB y la siguiente linea.

El fichero sería así:
Los números son para indicar que cada campo va separado por TABULACIONES
Cita:
(1)Titulo (2)nombre (3)mis datos descriptivos (4)palabras clave (5)publicados (6)textos mas continuacion
Esa sería una linea, pero el fichero contiene varias o miles ok, cada una con 6 campos separados por una tabulación.

Bien Ahora quisiera leer ese fichero por medio de PHP, y generar otro contenido donde cada campo se sustituya correctamente en su nuevo campo correspondiente.

El código que he intentado es con explode y separando por TABULADOR pero esto no funciona, ya que necesito separar cada campo y luego llegado a los 6 campos un salto de linea y el siguiente igual.

El código que estoy intentando es este, haber si pueden ayudarme.

Código PHP:
Ver original
  1. $archivo = fopen("datos_xml.xml","a") or
  2.                     die("Error en la creacion del Fichero final.");
  3.  
  4.                        /*este seria el fichero con los datos separados por TAB.*/
  5.         $nombre_fichero = 'datos.csv';
  6.            
  7.         $fichero = fopen($nombre_fichero,'rb');
  8.            
  9.         $contenido = fread($fichero, filesize($nombre_fichero));
  10.            
  11.         fclose($fichero);
  12.  
  13. /*aqui intento separar, pero claro lo hago por tabulacion, y debe ser por cada linea separar 6 campos y sustituir el 1 en la primera aparición de $linea, el segundo en la segunda aparición de $linea, y asi con los 6 campos */      
  14.         $lineas = explode("\t",$contenido);
  15.        
  16.         foreach ($lineas as $linea) {          
  17.                
  18.             fwrite( $archivo, '
  19.                             <item>
  20.                             <title>'. $linea . '</title>
  21.     <link>http://pagina.com/'.$linea.'/</link>
  22.         <description>'.$linea.'</description>
  23.                <campo:clave>'.$linea.'</campo:clave>
  24.                <texto>'.$linea.'</texto>
  25.                <continua>'.$linea.'</continua>
  26.         </item> ' . PHP_EOL );
  27.         }
  28.        
  29.         fwrite( $archivo, '</channel>
  30.                         </rss>
  31.                         ');
  32.        
  33.         fclose($archivo);
  34.    
  35. ?>

Bien quisiera que la parte de titulo se sustituya en la primera aparición de $linea.
El campo nombre se sustituya en la segunda aparición de $linea.
Y así con los 6 campos de la primera linea.

Para la segunda linea lo mismo, separar los 6 campos.

¿Cómo puedo realizarlo pueden ayudarme un poco con el código. ?

Gracias y Saludos a toda la comunidad.!!
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1