php에서 addcslashes () 함수는 문자열에서 특정 문자를 탈출하는 데 사용되는 문자열 함수입니다. 주요 목적은 특정 문자가 코드로 잘못 해석되는 것을 방지하거나 데이터베이스 및 파일 경로와 같은 민감한 문자열 시나리오를 처리하는 것입니다. 함수의 기본 구문은 다음과 같습니다.
string addcslashes(string $str, string $charlist)
여기서 $ str는 처리 할 원래 문자열을 나타내고 $ Charlist는 탈출 해야하는 문자 세트를 지정하는 데 사용됩니다.
Backslash ( \ )는 PHP에서 특별한 의미를 지니고 있으며 종종 탈출 문자로 사용됩니다. 통역사가 특정 문자를 오해하지 않으려면 addcslashes () 함수를 사용하여 자동으로 백 슬래시를 추가하여 프로그램 작동의 보안을 보장 할 수 있습니다.
$str = "It's a beautiful day!";
echo addcslashes($str, "'");
출력 결과는 다음과 같습니다.
그것은 아름다운 날!
JSON 데이터, 정규 표현식 또는 스크립트 임베딩을 처리 할 때 여러 문자를 동시에 탈출해야 할 수도 있습니다. 현재 addcslashes ()를 사용하여 배치 처리를 구현할 수도 있습니다.
$str = '{ "name": "John", "age": "30", "city": "New York" }';
echo addcslashes($str, "\"\\/");
출력 결과는 다음과 같습니다.
{\ "name \": \ "John \", \ "age \": \ "30 \", \ "City \": \ "New York \"}
백 슬래시 자체는 탈출 캐릭터이므로 단일 따옴표 또는 탈출 문자로 문자열을 다룰 때 특히주의하십시오.
$str = "It's a beautiful day!";
echo addcslashes($str, "'\\");
출력 결과 :
그것은 아름다운 날!
이 기능은 ASCII 문자 만 처리하며 다중 바이트 유니 코드 문자에 대해 직접 처리 할 수 없습니다. 유니 코드 인코딩 요구 사항이있는 경우 MB_Convert_Encoding () 함수를 결합하여 인코딩 변환을 처리 한 다음 탈출하는 것이 좋습니다.
$str = "안녕하세요,세계!";
$str = mb_convert_encoding($str, 'UTF-32', 'UTF-8');
echo addcslashes($str, '\\x');
출력은 다음과 같습니다.
\\ x4f60 \\ x597d \\ xff0c \\ x4e16 \\ x754c \\ xff01
SQL 문에 사용자 입력을 삽입 할 때 addcslashes ()를 사용하면 특수 문자로 인한 구문 인터럽트 또는 SQL 주입을 효과적으로 피할 수 있습니다.
$username = "admin";
$password = "1234'5678";
$sql = "SELECT * FROM users WHERE username = '" . addcslashes($username, "'\\") . "' AND password = '" . addcslashes($password, "'\\") . "'";
echo $sql;
산출:
사용자에서 username = 'admin'및 password = '1234 \\'5678 '을 선택하십시오.
파일 경로를 처리 할 때 특정 문자는 파일 함수의 인식을 방해 할 수 있습니다. 현재 Path Security Escape에 AddCslashes ()를 사용할 수도 있습니다.
$filename = "C:/Users/Administrator/Desktop/foo.txt";
$file_content = file_get_contents(addcslashes($filename, "'\\"));
echo $file_content;
이것은 경로의 백 슬래시로 인한 문제를 피할 수 있습니다.
AddCslashes () 는 PHP에서 매우 실용적인 문자열 처리 기능으로 데이터베이스 작업, 파일 경로 처리 및 데이터 형식 변환과 같은 문자 탈출이 필요한 다양한 시나리오에 적합합니다. 사용을 마스터하면 PHP 프로젝트의 보안 및 견고성을 향상시키는 데 도움이됩니다. 사용하는 동안 논리적 오류를 방지하기 위해 캐릭터 세트, 탈출 우선 순위 및 기타 문제에 특별한주의를 기울여야합니다.