2009-06-27 6 views
11

내용을 파일에 넣으려고하면 $ 데이터이 다차원 배열이므로이 파일이 세션 이름으로 만들어지기 때문에 내용을 파일에 넣는 기능을 사용하고 있습니다. 배열을 반향 출력 할 때 파일에 아무런 내용도 없습니다. 배열을 제외하고 내용이 없습니다.배열로 파일 내용 넣기

자동으로 파일을 만들고 데이터 (배열)를 기록하는 다른 기능이 있습니까?

감사합니다.

답변

22

당신은 파일을 읽은 후에을 writting에 배열하고, unserialize()serialize() 싶다.

$array = array('foo' => 'bar'); 
file_put_contents('foo.txt', serialize($array)); 
$array = unserialize(file_get_contents('foo.txt'))); 

아, 그리고 난 정말 당신이 당신의 배열을 echo'd하지만 echo array('foo' => 'bar'); 항상 Array를 인쇄하는 방법을 지금하지 않습니다.

+0

내가 잘못된 용어를 사용 미안 해요,하지만 난 내 배열 – Shishant

+0

단지 메모를 표시 인 print_r를 사용하고, 당신은 2 라인 – Uberfuzzy

+0

들으에) 누락! 고쳤다. :-) –

1

배열을 배열로 가져온 다음 파일을 다시로드 한 후이를 사용자 지정 할 수 있습니다. 배열을 json_encode으로 JSON 객체로 인코딩하고 .json 파일에 쓸 수도 있습니다. 당신이 읽을 수 있도록하려면

4

, 당신은 할 수 :

<?php 
ob_start(); 
print_r($data); 
$textualRepresentation = ob_get_contents(); 
ob_end_clean(); 

file_put_contents($file, $textualRepresentation); 
?> 
+4

$ textualRepresentation = 인 print_r ($ 데이터, TRUE); 잘 :-) –

+0

할 것 하하 ... 알고하지 않았다. 감사합니다 :) –

0

당신은 그 자체 배열 있는지 확인, 배열의 각 구성원을 통과 등이 회원에 다시 함수를 호출하는 경우, 단지 그 내용을 인쇄 할 경우에 할 수있는 재귀 함수를 설정할 수 있습니다. 이처럼 : serialize 좋은 옵션 사용하여 최적의 응답 상태로

$contents = var_export($array, true); 

file_put_contents('foo.txt', "<?php\n return {$contents};\n ?>"); 
// and then use something like this to get it: 
$new_array = require('foo.txt'); 
1

는 Definetelly 당신은 var_export 기능을 사용할 수 있습니다. 그러나, 당신은 또한 배열의 각 항목 후 PHP_EOL를 사용하여 배열을 저장하고 배열을 검색 할 file 명령을 사용할 수 있습니다.

function file_put_array($path, $contents) 
{ 
    if (is_array($contents)) 
    { 
     foreach ($contents as $item) 
      $str .= $item.PHP_EOL; 
     file_put_contents($path, $str); 
     return true; 
    } 
    return false; 
} 

그리고 retreive하는 내용 :

$contents = file($path, FILE_IGNORE_NEW_LINES); 
0

:

function file_put_contents_deep($file, $data) { 
    if (is_array($data) { 
    foreach ($data as $item) { 
     if (is_array($item) { 
     file_put_contents_deep($file, $item); 
     else { 
     file_put_contents($file, $item); 
     } 
    } 
    } else { 
    file_put_contents($file, $data); 
    } 
}