위토즈 - 개발자프로그램판매공간

정보공유

[PHP] PHP 로 HTTP raw post data 를 처리하는 방법

 

php://input은 raw POST 데이터를 읽을수 있는 권한을 허용한다. $HTTP_RAW_POST_DATA에 대한 메모리 집적에 대한 차선책이고, 특별한 php.ini 디렉티브 설정이 필요치 않다. php://input은 enctype="multipart/form-data"에 사용할 수 없습니다. 

 

만약에 body의 데이터가 json 이거나 PHP가 해석할 수 없는 형태더라도 직접 접근해야만 하는 경우가 있을 수 있습니다. 이때 사용되는 변수가 $HTTP_RAW_POST_DATA 인데 이 변수는 PHP 5.6 부터 Deprecated 이기 때문에 사용하면 안됩니다.

 

그래서 아래와 같이 HTTP body의 raw data를 읽기 전용으로 가져올 수 있습니다.

 

$raw_post_data = file_get_contents('php://input');
$raw_post_array = explode('&', $raw_post_data);
$myPost = array();
foreach ($raw_post_array as $keyval) {
  $keyval = explode ('=', $keyval);
  if (count($keyval) == 2)
    $myPost[$keyval[0]] = urldecode($keyval[1]);
}

 

만약 $HTTP_RAW_POST_DATA 는 사용해야 한다면 php.ini 의 always_populate_raw_post_data 를 TRUE 로 변경하면 가능하지만, 사용하지 않는 것이 잠재적으로 메모리를 절약할 수 있는 방안이 될 수 있습니다.

 

 

정보공유
Total 74건 4 페이지
번호 제목 글쓴이 날짜 조회
29 1차 도메인정보만 추출하기 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-31 34472
28 iconv 함수를 사용했는데 결과물이 공백으로 나올경우 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-26 33392
27 PHPExcelReader 사용할때 php number_format 사용하지 않고 숫자형 처리 하는 법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-26 50297
열람중 PHP 로 HTTP raw post data 를 처리하는 방법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-18 37038
25 db table 에 필드가 존재하는지 확인후 없으면 추가. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-21 33563
24 mysql 테이블 필드(컬럼) 존재 여부 확인. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 02-27 37646
23 [정규식] 텍스트내용에서 이미지 태그의 경로만 변환처리하기. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-29 43898
22 양옆 문자 제거. 양옆 문자 삭제. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-05 30074
21 소켓으로 url 존재 여부 확인. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-30 31503
20 배열값을 조회하고 없으면 밀어넣기. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-19 30276
19 할인율 공식. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-16 28388
18 정규식을 이용하여 날짜값 확인 방법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-25 31994
17 파라미터 전달값 확인 방법. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-25 31134
16 로그인이 반드시 필요한 사이트일경우 로그인 디렉토리가 아니면 로그인화면으로 이동. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-16 26649
15 htaccess 를 활용하여 m 도메인으로 접속하기. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-11 31347