Top

[PHP] 배열 형태를 파일로 만들어 넣기 | Web-Programing
김경훈 (admin) | Editor | 2016/04/21 11:18:15 | 조회:10603

파일로 로그 작업을 하려던중 

배열값을 파일로 저장하는데서 막혀버렸다.


이를테면 array('a'=>'A', 'b',=>'B'); 이런식의 배열을 어떠한 액션을 통해 파일로 저장을 할때.

파일에는 "Array" 라고 저장이 된다는...



$a = array('a'=>'A', 'b',=>'B'); 

배열형태의 경우 그 배열값을


$buff="

foreach($a as $key=>$val){

$buff .= '$'.$key.'='............ ..

}


이런식으로 buff에 넣어야하기때문에 매우 번거롭다. 

stdClass가 포함된 경우에는 그것까지 고려해야하기 때문에 난감하다.

이럴때는 serialize/unserialize나 json_encode/json_decode와 같이 암호화/복호화 방식을 사용하여 INPUT/OUTPUT을 수행하는 것이 좋다.


예1.

To save it :

file_put_contents("my_array.json", json_encode($array));

To get it back :

$array = json_decode(file_get_contents("my_array.json"));


예2.

이 경우에는 오직 array()형태만 가능하다.(stdClass는 안됨)

그래도 serialize보다는 var_exort가 속도면에서는 더 나으므로 object형태가 아니면 이방법을 사용하도록 하자.


$fp = fopen('file.txt', 'w');

if(is_array($array)) {

    fwrite($fp, print_r($array, TRUE)); //or use var_export()

}

fclose($fp);




print_r() 의 출력을 잡으려면, return 인수를  TRUE 로 사용하십시오.  

print_r() 은 출력(기본값)하는 대신, 출력을 반환합니다.


Example #2 return 인수 예제

<?php

    $b  = array ( 'm'  =>  'monkey' ,  'foo'  =>  'bar' ,  'x'  => array ( 'x' ,  'y' ,  'z' ));

    $results  =  print_r ( $b ,  true );  // $results가 print_r의 출력을 가집니다.

?>



공유하기
공유하기
0
0
0


댓글을 불러오는 중입니다.
▲ 이전글 [CSS] IE 인풋박스 X 버튼 제거하기. 김경훈 (admin) 2016-05-02 11:21:11
▼ 다음글 링크 페이지이동 막기 김경훈 (admin) 2016-04-14 18:11:20