PHP Чтение массива из файла в массив без кавычек - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть функция, которая записывает результат запроса базы данных в массив.Другая функция записывает этот массив в файл.

Теперь я хочу функцию, которая может поместить содержимое файла обратно в массив.

Массив выглядит следующим образом (оба, когда я его получаюиз БД и как это выглядит в файле):

Array
(
[0] => Array
    (
        [0] => 0605
        [TIME] => 0605
        [1] => AGP
        [CODE] => AGP
    )

[1] => Array
    (
        [0] => 0610
        [TIME] => 0610
        [1] => NBE
        [CODE] => NBE
    )

[2] => Array
    (
        [0] => 0610
        [TIME] => 0610
        [1] => AYT
        [CODE] => AYT
    )

[3] => Array
    (
        [0] => 0620
        [TIME] => 0620
        [1] => TFS
        [CODE] => TFS
    )
)

я пробовал это ->

public function file2Array($file){

    $filename = fopen($file,"r"); 
    $arr = array(); 

        while(!feof($filename)) 
        { 
    //read file line by line into a new array element 
    $arr[] = fgets($filename, 4096); 
    } 
    fclose ($filename); 
    return $arr;
    }

И это работает, но мой массив возвращается с (одиночной) кавычкойперед каждой строкой (делая массив бесполезным, конечно).

Как бы вернуть массив из файла в массив без кавычек, точно так же, как в файле?

edit: Может быть, яследует отметить, что читаемый файл имеет расширение .php

1 Ответ

0 голосов
/ 22 ноября 2011

Как кто-то уже сказал - используйте какой-нибудь формат данных.CSV, JSON, XML - все подойдет.

Теперь вы просто записываете выходные данные print_r или var_dump (или любой используемой вами функции) в файл.Вывод этих функций в информационных целях, а не для хранения данных.

Вот несколько быстрых функций для вас:

function array_to_file(array $array, $filename)
{
 $handle = fopen($filename, 'w');
 foreach ($array as $a) {
     $string = json_encode($a).PHP_EOL;
     fwrite($handle, $string);
   } 
   fclose($handle)
}

function file_to_array($filename)
{
   $result = array();
   $array_of_lines = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
   foreach ($array_of_lines as $line){
     $result[] = json_decode($line, true);
   }
   return $result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...