Strings strip_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

strip_tags — 문자열에서 HTML 및 PHP 태그 제거


설명

strip_tags(string $string, array|string|null $allowed_tags = null): string

이 함수는 주어진 string에서 제거된 모든 NULL 바이트, HTML 및 PHP 태그가 있는 문자열을 반환하려고 합니다. fgetss() 함수와 동일한 태그 제거 상태 머신을 사용합니다.


매개변수

string
력 문자열입니다.
allowed_tags
선택적 두 번째 매개변수를 사용하여 제거해서는 안 되는 태그를 지정할 수 있습니다. 이들은 문자열로 제공되거나 PHP 7.4.0부터 배열로 제공됩니다. 이 매개변수의 형식에 대해서는 아래 예를 참조하십시오.

메모: HTML 주석과 PHP 태그도 제거됩니다. 이것은 하드코딩되어 있으며 allowed_tags로 변경할 수 없습니다.

메모:

자체 닫는 XHTML 태그는 무시되며, allowed_tags에는 자체 닫지 않는 태그만 사용해야 합니다. 예를 들어, <br><br/>를 모두 허용하려면 다음을 사용해야 합니다.

                        
<?php
strip_tags($input, '<br>');
?>
                        
                      

반환 값

제거된 문자열을 반환합니다.


변경 로그

버전 설명
8.0.0 이제 allowed_tags는 null을 허용합니다.
7.4.0 이제 allowed_tags는 배열을 허용합니다.

Examples

예제 #1 strip_tags() 예제

                  
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

// as of PHP 7.4.0 the line above can be written as:
// echo strip_tags($text, ['p', 'a']);
?>
                  
                

위의 예는 다음을 출력합니다.

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
                

메모

경고 XSS 공격을 방지하기 위해 이 함수를 사용해서는 안 됩니다. 출력 컨텍스트에 따라 htmlspecialchars() 또는 기타 수단과 같은 더 적절한 함수를 사용합니다.

경고 strip_tags()는 실제로 HTML의 유효성을 검사하지 않기 때문에 태그가 부분적이거나 끊어지면 예상보다 많은 텍스트/데이터가 제거될 수 있습니다.

경고 이 함수는 다른 사용자에게 표시될 텍스트를 게시할 때 장난꾸러기 사용자가 남용할 수 있는 styleonmouseover 속성을 포함하여 allowed_tags 사용을 허용하는 태그의 속성을 수정하지 않습니다.

메모: 길이가 1023바이트보다 큰 입력 HTML 내의 태그 이름은 allowed_tags 매개변수에 관계없이 유효하지 않은 것으로 처리됩니다.


기타