получить строку из текстового файла и разделить на массив - PullRequest
0 голосов
/ 03 марта 2012

Я хочу отделить строку от текстового файла.

если файл .txt был прочитан из какого-либо места. я хочу прочитать файл и получить строки в массиве.

Текстовый файл имеет следующие данные

aaa  1111111,
    2hajakka,
    87uj5687,
     F2tryty   
bbb  45454545,
    rereer,
    87uj5687,
     4343343,
    944dsdds

Я хочу хранить строки в массиве, как

$arr = array(
"aaa 1111111, 2hajakka, 87uj5687, F2tryty ",
"bbb 45454545, rereer, 87uj5687, 4343343, 944dsdds");

примечания:
данные начинаются с первой строки в виде имени, например (aaa, bbb) данные разделяются запятыми если запятая не в строке, она переходит к следующему полю массива

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 03 марта 2012
$file_handle = fopen("myfile.txt", "r");
$arr[] = "";
$i = 0;
$temp_string = '';

while (!feof($file_handle)) {
$line = fgets($file_handle);
if(strpos($line,",")!== false)
{
$temp_string = $temp_string.$line;}
else{
$temp_string = $temp_string.$line;  
$arr[$i] = $temp_string;
$temp_string = '';
$i++;}
}
0 голосов
/ 03 марта 2012

То, что вы пытаетесь сделать, довольно просто:

  1. сворачивает многострочные записи в одну строку
  2. разбивает строки в массив

в значительной степени:

<?php
$string = 'aaa  1111111,
    2hajakka,
    87uj5687,
     F2tryty   
bbb  45454545,
    rereer,
    87uj5687,
     4343343,
    944dsdds';

// move lines beginning with a space to the previous line
$string = preg_replace('#\n +#', ' ', $string);
// split lines into array
$array = explode("\n", $string);
var_dump($array);
...