제목 | curl 2차원 배열 전송 | ||
---|---|---|---|
글쓴이 | 로하나스 | 작성시각 | 2017/04/20 11:24:07 |
|
|||
안녕하세요! 혹시나 curl 통신으로 2차원 배열 전송으로 고민할 분이 있을까해서 글을 남깁니다.
보통 1차원 배열은 그냥저냥 잘 전달이 됩니다. 하지만 2차원 배열을 넘길시 2차원 쪽은 Array만 찍히는데요. $set = array('test'=>'Y','aaaa'=>'1234','asdf'=>array('a'=>'\'asssdf\'','b'=>'23')); $post_data = array('data' => serialize($set)); $url = "http://api.test.com/shop/set_shop/"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url ); curl_setopt($curl, CURLOPT_POST,0); curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); curl_setopt($curl, CURLOPT_TIMEOUT,20); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); $json = curl_exec($curl); // 실행 curl_close($curl); $data=json_decode($json,true); 이렇게 넘길때 serialize로 감싸구요
받을때도 중요합니다. 받는곳에서 단순하게 unserialize만 하면 안되구요! $data = unserialize(stripslashes($_REQUEST['data'])); 이렇게 stripslashes 을 적어주고 하니 Array ( [test] => Y [aaaa] => 1234 [asdf] => Array ( [a] => 'asssdf' [b] => 23 ) ) 2차원 배열도 정상적으로 넘어오네요! 이상입니다. ------------------------- //to safely serialize $safe_string_to_store = base64_encode(serialize($multidimensional_array)); //to unserialize... $array_restored_from_db = unserialize(base64_decode($encoded_serialized_string)); 추가 검색하니 위 방법도 잘되네요! |
|||
태그 | curl | ||
다음글 | HTML 프린터 출력시 페이지 나눔 (2) | ||
이전글 | 형태소 검색기 (7) | ||
kaido
/
2017/04/20 11:33:35 /
추천
0
|
변종원(웅파)
/
2017/04/20 12:39:34 /
추천
1
json 포맷 나오기전에 유용하게 썼던 방법이죠. ^^
|
한대승(불의회상)
/
2017/04/20 13:31:24 /
추천
0
좋은 정보 감사합니다. ^^
|
좋은정보 감사합니다 ㅎㅎ
참고로 serialize 화 시키면 js 에서 배열을 만들어서 보내줄때도 유용합니다.