PHP에서 원시 멀티파트/양식 데이터 데이터를 수동으로 구문 분석
멀티파트/양식 데이터 형식을 사용하여 HTTP PUT 요청의 데이터를 처리할 때, PHP는 원시 데이터를 자동으로 구문 분석하지 않습니다. 결과적으로 개발자는 이러한 요청에서 정보를 추출하는 데 어려움을 겪을 수 있습니다.
해결책:
원시 요청 데이터 읽기:
콘텐츠 유형에서 경계 추출 헤더:
경계별로 데이터 분할:
블록을 개별 필드로 분리:
각 블록에 대해:
업로드됨 파일:
기타 필드:
示例 코드:
<code class="php">function parse_raw_http_request(array &$a_data) { $input = file_get_contents('php://input'); preg_match('/boundary=(.*)$/', $_SERVER['CONTENT_TYPE'], $matches); $boundary = $matches[1]; $a_blocks = preg_split("/-+$boundary/", $input); array_pop($a_blocks); foreach ($a_blocks as $id => $block) { if (empty($block)) continue; if (strpos($block, 'application/octet-stream') !== FALSE) { preg_match('/name=\"([^\"]*)\".*stream[\n|\r]+([^\n\r].*)?$/s', $block, $matches); } else { preg_match('/name=\"([^\"]*)\"[\n|\r]+([^\n\r].*)?\r$/s', $block, $matches); } $a_data[$matches[1]] = $matches[2]; } }</code>
사용:
<code class="php">$a_data = array(); parse_raw_http_request($a_data); var_dump($a_data);</code>
위 내용은 PHP에서 원시 Multipart/Form-Data 데이터를 수동으로 구문 분석하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!