현재 위치: > 최신 기사 목록> 원래 캐릭터를 유지하고 반복적 인 탈출을 피하고 싶습니까? 이와 같은 addcslashes를 사용해보십시오

원래 캐릭터를 유지하고 반복적 인 탈출을 피하고 싶습니까? 이와 같은 addcslashes를 사용해보십시오

gitbox 2025-09-15

PHP 프로그래밍에서는 종종 데이터베이스, 정규 표현식 및 HTML 컨텐츠를 출력하는 경우 특히 문자열을 피해야하는 상황을 만듭니다. 탈출 캐릭터는 일부 특수 캐릭터가 구문 분석하거나 잘못 실행되는 것을 피하는 데 도움이됩니다. 대부분의 경우 AddSlashes () 함수는 현악기를 효과적으로 탈출 할 수 있지만 일부 특정 시나리오에서는 반복 된 탈출을 피하면서 원래 문자를 보존 할 수 있습니다. 이 시점에서 addcslashes () 함수는보다 유연한 솔루션을 제공합니다.

addcslashes () 함수 소개

PHP의 addcslashes () 함수는 지정된 문자를 문자열에서 탈출하는 데 사용됩니다. AddSlashes () 와 달리 AddCSlashes ()를 사용하면 개발자가 탈출 해야하는 문자를 지정하여 더 많은 제어를 제공합니다.

함수 정의

 <span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">addcslashes</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$charlist</span></span><span>)
</span></span>
  • $ str : 처리 할 문자열.

  • $ 샬리스트 : 탈출 해야하는 캐릭터 세트. 이 문자 세트는 단일 문자, 여러 문자 또는 문자 범위 (예 : AZ ) 일 수 있습니다.

addcslashes ()는 $ str에서 $ str 로 문자를 탈출하여 $ charlist 에 지정된 것과 일치합니다. AddSlashes () 와 달리 addcslashes ()는 단일 따옴표 ( ' ) 또는 이중 인용문 ( " )을 직접 탈출하지 않고 대신 샬리스트 에 설정된 문자를 기반으로 탈출 해야하는 내용을 결정합니다.

응용 프로그램 시나리오

1. 원래 문자를 유지하지만 반복 된 탈출을 피하십시오

여러 개의 탈출 된 캐릭터가 포함 된 문자열이 있고이 캐릭터를 탈출하고 싶지만 탈출 된 캐릭터를 반복적으로 처리하고 싶지 않다고 가정합니다. addcslashes ()를 사용하면 원래 문자에 영향을 미치지 않고 반복 된 탈출을 피할 수 있습니다.

예:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"This is a 'test' string with special characters like \n, \r, and \t."</span></span><span>;

</span><span><span class="hljs-variable">$escapedStr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">addcslashes</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">"\n\r\t"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escapedStr</span></span><span>;
</span></span>

출력 :

 <span><span>This </span><span><span class="hljs-keyword">is</span></span><span> a </span><span><span class="hljs-string">'test'</span></span><span> </span><span><span class="hljs-built_in">string</span></span><span> </span><span><span class="hljs-keyword">with</span></span><span> special characters like \n, \r, </span><span><span class="hljs-keyword">and</span></span><span> \t.
</span></span>

이 예에서는 \ n , \ r\ t 만 탈출했으며 AddSlashes () 는 더 많은 문자를 탈출합니다. 문자열에 이미 이스케이프 문자가 포함 된 경우 addcslashes ()를 사용하면 이러한 문자의 반복 처리를 피할 수 있습니다.

2. 특정 문자 세트를 탈출하십시오

때로는 모든 소문자 또는 숫자와 같은 특정 범위 내에서 문자를 피할 수 있습니다. addcslashes () 의 유연성으로 우리는 이것을 할 수 있습니다.

예:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"This is a test string 1234!"</span></span><span>;
</span><span><span class="hljs-variable">$escapedStr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">addcslashes</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-string">'a-z'</span></span><span>);  </span><span><span class="hljs-comment">// 모든 소문자를 피하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escapedStr</span></span><span>;
</span></span>

출력 :

 <span><span>This </span><span><span class="hljs-keyword">is</span></span><span> \a \t\es\ t </span><span><span class="hljs-built_in">string</span></span><span> </span><span><span class="hljs-number">1234</span></span><span>!
</span></span>

이 예에서는 소문자 AZ 만 탈출됩니다. 보다 맞춤형 탈출 처리를 수행하기 위해 필요에 따라 문자 세트를 수정할 수 있습니다.

3. 정기적 인 표현에서 특수 인물을 탈출하십시오

일반 표현식을 구축 할 때 특수 문자를 안전하게 처리하려면 addcslashes () 가 매우 유용한 도구입니다. Dots ( . ), 별표 ( * ) 등과 같은 일반 표현을 방해하는 캐릭터를 피하는 데 도움이 될 수 있습니다.

예:

 <span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"This is a test with some special characters like . * + ?"</span></span><span>;
</span><span><span class="hljs-variable">$escapedPattern</span></span><span> = </span><span><span class="hljs-title function_ invoke__">addcslashes</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-string">'.|*+?()[]{}^$\\'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escapedPattern</span></span><span>;
</span></span>

출력 :

 <span><span>This </span><span><span class="hljs-keyword">is</span></span><span> a test </span><span><span class="hljs-keyword">with</span></span><span> </span><span><span class="hljs-keyword">some</span></span><span> special characters </span><span><span class="hljs-keyword">like</span></span><span> \. \* \+ \? 
</span></span>

이런 식으로, 우리는 정규 표현식을 구축 할 때 오류 나 예상치 못한 일치 결과를 제기하지 않도록 할 수 있습니다.

4. SQL 쿼리에 사용됩니다

SQL 쿼리를 처리 할 때 SQL 주입을 피하는 것이 중요합니다. PDO 또는 MySQLI 전처리 명세서를 사용하는 것이 더 권장되는 동안, 경우에 따라 잠재적 인 SQL 주입 공격을 방지하기 위해 사용자 입력을 탈출해야 할 수도 있습니다. addcslashes ()는 사용자 입력에서 특수 문자를 피하기 위해 SQL 쿼리의 보안을 향상시키는 데 도움이 될 수 있습니다.

예:

 <span><span><span class="hljs-variable">$userInput</span></span><span> = </span><span><span class="hljs-string">"Robert'); DROP TABLE Students;--"</span></span><span>;
</span><span><span class="hljs-variable">$escapedInput</span></span><span> = </span><span><span class="hljs-title function_ invoke__">addcslashes</span></span><span>(</span><span><span class="hljs-variable">$userInput</span></span><span>, </span><span><span class="hljs-string">"'"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$escapedInput</span></span><span>;
</span></span>

출력 :

 <span><span>Robert\'); DROP TABLE Students;-- 
</span></span>

단일 따옴표를 피함으로써 SQL 주입 공격을 피할 수 있습니다. 이 방법은 전처리 문만큼 안전하지는 않지만 여전히 약간의 보호 기능을 제공합니다.

요약

addcslashes () 는 매우 강력한 PHP 기능으로, 문자열에서 특정 문자를 탈출 할 수있는 유연한 방법을 제공합니다. AddSlashes () 와 달리 addcslashes ()를 사용하면 탈출 해야하는 특정 문자를 지정하여 문자열의 탈출 프로세스를 더 잘 제어 할 수 있습니다. 반복 탈출을 피하거나 정규식 처리 또는 SQL 주입 방지와 같은 시나리오에 관계없이 AddCSlashes ()는 중요한 역할을 할 수 있습니다.

이 기능을 올바르게 이해하고 사용하면 PHP 프로그래밍에서 문자열 처리의 효율성과 보안을 향상시키는 데 도움이됩니다.