2011-11-22 6 views
0

DB 쿼리의 결과를 배열에 씁니다. 다른 함수는이 배열을 파일에 씁니다.PHP 파일에서 배열을 따옴표없이 배열로 읽어들입니다.

이제 파일의 내용을 배열에 넣을 수있는 함수가 필요합니다.

배열은 다음과 같습니다 (모두 내가는 DB에서 그것을 얻을 그것은 파일에 모양을 때) :이 시도

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; 
    } 

을 그리고 작동 하지만 내 배열은 모든 줄 앞에 (단일) 따옴표로 반환됩니다 (배열을 쓸데없는 쓸모없는 렌더링).

파일에서 정확히 어떻게 배열에서 따옴표없이 배열을 반환 할 것이라고?

편집 : 어쩌면 내가 읽고있는 파일이 .PHP 확장자가 언급해야

+1

어떤 파일이 생겼는데? – Sjoerd

+0

먼저 파일 쓰기 기능으로 문제를 검색하지 않겠습니까? (Btw, 파일을 줄 단위로 읽는 다른 방법이 있습니다 : ['file'] (http://php.net/file)) – mario

+0

처음에는 데이터 유형을 저장하는 이유를 묻는 질문에 대답했습니다. 배열 - 파일. 필자는이 배열의 단순성과 함께 헤더를 사용하여 CSV 파일에 배열을 저장하는 것이 훨씬 쉽고 실제 데이터 형식으로 값을 추출하는 것이 훨씬 쉽다고 생각합니다. –

답변

0

누군가가 이미 말했듯이 - 일부 데이터 형식을 사용합니다. 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; 
} 
관련 문제