| 제목 | 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 에서 배열을 만들어서 보내줄때도 유용합니다.