웹 애플리케이션을 작성하는 동안 사용자 입력에서 HTML 태그를 제거하고 이를 일반 텍스트 형식으로 변환해야 하는 경우가 많습니다. 이는 XSS(교차 사이트 스크립팅) 공격을 방지하고 텍스트 콘텐츠의 가독성을 향상시킵니다. PHP에서는 정규식을 사용하여 이 목표를 달성할 수 있습니다.
일반적인 방법은 PHP의 Strip_tags() 함수를 사용하는 것입니다. 이 함수는 문자열에서 모든 HTML 태그를 제거합니다. 그러나 링크 및 이미지 태그와 같은 일부 태그를 유지하려는 경우가 있습니다. 이 경우 정규 표현식이 유용합니다.
먼저 정규식을 사용하여 HTML 태그를 제거하고 일반 텍스트로 변환하는 방법을 살펴보겠습니다. 다음은 간단한 PHP 코드 예입니다.
$string = "<p>这是带有<strong> HTML标记 </strong>的文本。</p>"; $text = preg_replace("/<[^>]+>/", '', $string); echo $text; // 输出: 这是带有 HTML标记 的文本。
이 정규 표현식은 문자열에서 "ed37340d12c59002efcd706b106ce444"로 끝나는 모든 텍스트를 찾아 빈 텍스트로 바꿉니다(예: 삭제).
이제 특정 HTML 태그만 유지하는 방법을 살펴보겠습니다. 16e3673c8f9326235a5217cdf963cf19 태그를 유지한다고 가정해 보겠습니다. 다음은 샘플 코드입니다.
$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'>。
이 정규식의 의미는 "ed37340d12c59002efcd706b106ce444"로 끝나는 문자열을 모두 찾는 것입니다. 그러나 c0928210d5a505a42cc93292bd3d74cf
이 목표를 달성하기 위해 부정적인 예측(?!)을 사용할 수 있습니다. 이 표현식은 정규식 엔진에 ""ed37340d12c59002efcd706b106ce444"로 끝나지만 16e3673c8f9326235a5217cdf963cf19 또는 a482408f4345e9b47492d085db8fef6a 태그가 아닌 태그를 찾으세요.
참고하세요. 또한 " "를 사용하여 레이블의 경계를 일치시킵니다. 예를 들어 "
위 방법을 사용하면 HTML 태그를 제거하고 PHP에서 정규 표현식을 사용하여 일반 텍스트로 변환할 수 있습니다. 이는 XSS 공격을 방지하기 위한 한 단계일 뿐이라는 점에 유의하세요. 웹 애플리케이션의 보안을 강화하려면 입력 유효성 검사, 출력 필터링, 세션 관리 등의 다른 기술을 사용해야 하는 경우가 많습니다. 위 내용은 PHP에서 정규식을 사용하여 HTML 태그를 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!