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의 유효성을 검사하지 않기 때문에 태그가 부분적이거나 끊어지면 예상보다 많은 텍스트/데이터가 제거될 수 있습니다.
경고 이 함수는 다른 사용자에게 표시될 텍스트를 게시할 때 장난꾸러기 사용자가 남용할 수 있는 style
및 onmouseover
속성을 포함하여 allowed_tags
사용을 허용하는 태그의 속성을 수정하지 않습니다.
메모: 길이가 1023바이트보다 큰 입력 HTML 내의 태그 이름은 allowed_tags
매개변수에 관계없이 유효하지 않은 것으로 처리됩니다.
기타
- htmlspecialchars() - 특수 문자를 HTML 엔터티로 변환