> 백엔드 개발 > PHP 튜토리얼 > PHP에서 정규식을 사용하여 HTML 태그를 제거하는 방법

PHP에서 정규식을 사용하여 HTML 태그를 제거하는 방법

王林
풀어 주다: 2023-06-24 08:50:01
원래의
1343명이 탐색했습니다.

웹 애플리케이션을 작성하는 동안 사용자 입력에서 HTML 태그를 제거하고 이를 일반 텍스트 형식으로 변환해야 하는 경우가 많습니다. 이는 XSS(교차 사이트 스크립팅) 공격을 방지하고 텍스트 콘텐츠의 가독성을 향상시킵니다. PHP에서는 정규식을 사용하여 이 목표를 달성할 수 있습니다.

일반적인 방법은 PHP의 Strip_tags() 함수를 사용하는 것입니다. 이 함수는 문자열에서 모든 HTML 태그를 제거합니다. 그러나 링크 및 이미지 태그와 같은 일부 태그를 유지하려는 경우가 있습니다. 이 경우 정규 표현식이 유용합니다.

먼저 정규식을 사용하여 HTML 태그를 제거하고 일반 텍스트로 변환하는 방법을 살펴보겠습니다. 다음은 간단한 PHP 코드 예입니다.

$string = "<p>这是带有<strong> HTML标记 </strong>的文本。</p>";
$text = preg_replace("/<[^>]+>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本。
로그인 후 복사

이 정규 표현식은 문자열에서 "<"로 시작하고 ">"로 끝나는 모든 텍스트를 찾아 빈 텍스트로 바꿉니다(예: 삭제).

이제 특정 HTML 태그만 유지하는 방법을 살펴보겠습니다. < a > 태그를 유지한다고 가정해 보겠습니다. 다음은 샘플 코드입니다.

$string = "<p>这是带有<strong> HTML标记 </strong>的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。</p>";
$text = preg_replace("/<(?!a|img)[^>]*>/", '', $string);
echo $text; // 输出: 这是带有 HTML标记 的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。
로그인 후 복사

이 정규식의 의미는 "<"로 시작하고 ">"로 끝나는 문자열을 모두 찾는 것입니다. 그러나 <

이 목표를 달성하기 위해 부정적인 예측(?!)을 사용할 수 있습니다. 이 표현식은 정규식 엔진에 ""<"로 시작하고 ">"로 끝나지만 < a > 또는 < img > 태그가 아닌 태그를 찾으세요.

참고하세요. 또한 " "를 사용하여 레이블의 경계를 일치시킵니다. 예를 들어 "

위 방법을 사용하면 HTML 태그를 제거하고 PHP에서 정규 표현식을 사용하여 일반 텍스트로 변환할 수 있습니다. 이는 XSS 공격을 방지하기 위한 한 단계일 뿐이라는 점에 유의하세요. 웹 애플리케이션의 보안을 강화하려면 입력 유효성 검사, 출력 필터링, 세션 관리 등의 다른 기술을 사용해야 하는 경우가 많습니다.

위 내용은 PHP에서 정규식을 사용하여 HTML 태그를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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