PHP взорвать многострочный текст в текстовом файле - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть текстовый файл, и данные внутри него:

john,male,20,200,174
joe,male,24,157,166
bea,female,18,153,160
edd,male,30,180,180

Я использую Laravel, поэтому у меня есть папка, содержащая этот текстовый файл, в хранилище / app / upload.В моем контроллере это мой код:

public function readfile() 
    {
        $file = Storage::get('upload/test.txt');        
        $array = explode(',', $file);
        print_r($array);
    }

вывод:

Array
(
    [0] => john
    [1] => male
    [2] => 20
    [3] => 200
    [4] => 174
joe
    [5] => male
    [6] => 24
    [7] => 157
    [8] => 166
bea
    [9] => female
    [10] => 18
    [11] => 153
    [12] => 160
edd
    [13] => male
    [14] => 30
    [15] => 180
    [16] => 180
)

что мне нужно, это:

Array
(
     [0] => john,male,20,200,174
     [1] => joe,male,24,157,166
     [2] => bea,female,18,153,160
     [3] => edd,male,30,180,180
)

Я все ещеновичок в этом, и я надеюсь, что кто-то может мне помочь.Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Чтобы получить массив массивов (разделение строк запятыми), попробуйте

public function readfile() 
    $file = Storage::get('upload/test.txt');
    $lines = explode("\n", $file);
    $array = array_map(function($line) {
        return explode(',', $line);
    }, $lines);
    print_r($array);
}

Если вы хотите получить только массив строк, тогда он находится в $lines.Рабочий пример здесь

0 голосов
/ 20 февраля 2019

Попробуйте этот код ниже

public function readfile() 
{
    $file = Storage::get('upload/test.txt');   
    $fileData = [];
    while (!$file->eof()) {
        $fileData[] = $file->fgetcsv(",");
    }
    print_r($fileData);
}
0 голосов
/ 20 февраля 2019

Попробуйте это

public function readfile() 
    {
        $file = Storage::get('upload/test.txt');        
        $array = explode(PHP_EOL, $file);
        print_r($array);
    }
...