PHP 에서 HTTP PUT 요청 을 모 의 처리 하 는 예

HTTP PUT 에 대한 자세 한 설명 은 이 글 을 참조 하 십시오: / / www. jb51. net / article / 52515. htm.
PHP 에 $GET,$_POST, 하지만 $ 가 없습니다.PUT, 그래서 그것 을 사용 해 야 한다 면 스스로 시 뮬 레이 션 을 해 야 합 니 다.
 
  
 $_PUT = array();
if ('PUT' == $_SERVER['REQUEST_METHOD']) {
     parse_str(file_get_contents('php://input'), $_PUT);
 }

통과 하 다.php://input얻 은 데 이 터 는 raw data 이기 때문에 parsestr 해석 해 봐.
그러나 설명 이 필요 한 것 은 폼 이 enctype = "multipart / form - data" 형식 일 때 (파일 을 업로드 하 는 형식) 이 방법 은 유효 하지 않 습 니 다 (이때).php://input비어 있 음) PHP 에서 요청 한 Content - Type 이 multipart / form - data 인 것 을 발견 하면 폼 데 이 터 를 무조건 처리 하고 $ 에 저장 합 니 다.FILES 에 서 는 raw data 를 얻 을 수 없 으 며, 일부 편향 방법 만 사용 할 수 있 습 니 다.
apache 의 경우 httpd. conf 를 수정 합 니 다 (RequestHeader 문법 을 사용 하기 위해 header 모듈 을 먼저 활성화 하 십시오).
 
  

     RequestHeader set Content-Type foobar


Content - Type 요청 헤더 리 셋 을 통 해 foobar (multipart / form - data 만 아니면 됩 니 다) 입 니 다.php://input데이터 가 있 습 니 다. 하지만 원래 있 던 $FILES 데 이 터 는 존재 하지 않 습 니 다. 그래서 기본적으로 프레젠테이션 의 의미 만 있 습 니 다. raw data 를 얻 으 려 면 데이터 에 따라 만 생 성 할 수 있 고 PEAR 에서 비슷 한 실현 이 있 습 니 다. HTTPRequest2_MultipartBody。
브 라 우 저 는 일반적으로 GET / POST 방법 만 사용 할 수 있 습 니 다. JS 를 통 해 PUT 방법 을 보 낼 수 있 지만 코드 를 작성 해 야 합 니 다. 상대 적 으로 명령 행 에 있 는 CURL 명령 을 사용 하 는 것 이 편리 하고 테스트 를 개발 할 때 유용 하기 때문에 학습 이 필요 합 니 다.
 
  
curl -X PUT http://www.domain.com/demo.php -d "id=1" -d "title=a"

이렇게 하면 PUT 방법 으로 id, title 데 이 터 를 보 내 고 테스트 할 때 demo. php 코드 는 위 와 유사 합 니 다.php://input。

좋은 웹페이지 즐겨찾기