> 백엔드 개발 > PHP 튜토리얼 > PHP는 GET, POST 및 쿠키의 변수 이름에서 마침표를 어떻게 처리합니까?

PHP는 GET, POST 및 쿠키의 변수 이름에서 마침표를 어떻게 처리합니까?

Susan Sarandon
풀어 주다: 2024-12-08 22:44:10
원래의
677명이 탐색했습니다.

How Does PHP Handle Periods in Variable Names from GET, POST, and Cookies?

PHP 변수 이름 및 문자 대체

PHP에서는 요청 필드나 쿠키를 마침표/점(. ) 이름으로. 그러나 PHP는 자동으로 이러한 점을 밑줄(_)로 바꿉니다. 이 동작은 변수 이름 연결을 위해 PHP에서 점을 사용하기 때문에 발생합니다.

설명

PHP 문서에 따르면 점 문자(.)는 변수 이름에 허용되지 않습니다. 이는 아래 PHP 코드 예제에 표시된 것처럼 변수를 연결할 때 예기치 않은 동작이 발생할 수 있습니다.

$varname.ext;  /* invalid variable name */
로그인 후 복사

위 예제에서 PHP는 오른쪽(ext)을 문자열로 해석합니다. 이를 방지하기 위해 PHP는 들어오는 변수 이름의 점을 밑줄로 바꿉니다.

결과

이 대체 동작은 GET 및 POST 매개변수뿐만 아니라 쿠키에도 영향을 미칩니다. 예를 들어, 이름이 "x.y"인 쿠키가 설정되면 PHP는 내부 표현에서 해당 쿠키를 자동으로 "x_y"로 변경합니다.

솔루션

그동안 PHP의 점에서 밑줄로의 교체를 방지하는 것은 불가능합니다. 점으로 원래 변수 이름을 검색하는 해결 방법이 있습니다. 한 가지 해결책은 dawnerd의 의견에서 제안한 대로 str_replace() 함수를 사용하여 변수를 읽은 후 밑줄을 다시 점으로 바꾸는 것입니다.

위 내용은 PHP는 GET, POST 및 쿠키의 변수 이름에서 마침표를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿