>  기사  >  백엔드 개발  >  PHP의 `$_POST` 배열이 동일한 이름을 가진 여러 양식 필드를 처리할 수 있습니까?

PHP의 `$_POST` 배열이 동일한 이름을 가진 여러 양식 필드를 처리할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 19:48:12982검색

Can PHP's `$_POST` Array Handle Multiple Form Fields with the Same Name?

중복된 ​​이름 속성이 있는 양식 필드 제출

질문:

다음을 포함하는 양식을 제출하는 경우 이름 속성이 동일한 여러 텍스트 입력 필드가 있는 경우 모든 필드 값을 여전히 검색할 수 있습니까? PHP의 $_POST 배열?

답변:

아니요. 이름이 같은 마지막 입력 요소의 값만 $_POST 배열에 저장됩니다.

이유:

PHP는 원시 쿼리 문자열을 개별 이름-값 쌍으로 전개하여 $_POST 배열. 이름이 동일한 이름-값 쌍이 여러 개 발견되면 이전 값을 새 값으로 덮어씁니다.

대안:

동일한 값으로 여러 입력을 처리하려면 name:

  • 배열 구문이 추가된 이름 속성을 사용합니다(예: name="foo[]").
  • $rawQueryString = file_get_contents('php://input')을 사용하여 원시 쿼리 문자열에 직접 액세스합니다.

파싱 원시 쿼리 문자열:

원시 쿼리 문자열을 사용하는 경우 유사한 스크립트를 사용하여 수동으로 구문 분석할 수 있습니다. 받는 사람:

$post = array();
foreach (explode('&', file_get_contents('php://input')) as $keyValuePair) {
    list($key, $value) = explode('=', $keyValuePair);
    $post[$key][] = $value;
}

위 내용은 PHP의 `$_POST` 배열이 동일한 이름을 가진 여러 양식 필드를 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.