PUT 요청을 위해 PHP에서 원시 멀티파트/양식 데이터 데이터를 수동으로 구문 분석
멀티파트/양식 데이터 요청으로 작업할 때, 특히 HTTP PUT 작업의 맥락에서 PHP의 내장 구문 분석은 POST 요청의 경우처럼 원시 데이터를 자동으로 처리하지 못할 수 있습니다. 이 문제를 극복하려면 수동 구문 분석이 필요합니다.
원시 데이터 검색
먼저 file_get_contents('php://input'을 사용하여 원시 HTTP 요청 본문을 검색합니다. ).
Content-Type 헤더 구문 분석
정규 표현식을 사용하여 Content-Type 헤더에서 멀티파트 경계를 추출합니다.
<code class="php">preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches); $boundary = $matches[1];</code>
데이터 분할
원시 데이터를 경계로 구분된 개별 블록으로 나눕니다.
<code class="php">$a_blocks = preg_split("/-+$boundary/", $input); array_pop($a_blocks);</code>
블록 반복
각 블록을 반복하고 내용을 구문 분석합니다.
<code class="php">foreach ($a_blocks as $id => $block) { // Check if the block contains uploaded files if (strpos($block, 'application/octet-stream') !== FALSE) { // Extract file metadata using regex preg_match('/name=\"([^\"]*)\".*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches); } // Parse other form fields else { // Extract form field name and value using regex preg_match('/name=\"([^\"]*)\"[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches); } $a_data[$matches[1]] = $matches[2]; }</code>
이제 $a_data 배열에서 구문 분석된 데이터에 액세스할 수 있습니다. 이 사용자 정의 구문 분석 방법을 사용하면 PHP에서 원시 멀티파트/양식 데이터 데이터를 처리할 수 있으며, 이는 PUT 요청과 관련된 시나리오에 특히 유용합니다.
위 내용은 PHP에서 PUT 요청에 대한 다중 부분/양식 데이터 데이터를 수동으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!