현재 위치: > 최신 기사 목록> Strip_tags 기능을 사용하여 HTML에서 SVG 태그를 제거하고 컨텐츠를 간결하게 유지하는 방법은 무엇입니까?

Strip_tags 기능을 사용하여 HTML에서 SVG 태그를 제거하고 컨텐츠를 간결하게 유지하는 방법은 무엇입니까?

gitbox 2025-08-07

웹 개발에서 우리는 종종 관련없는 태그, 특히 사용자가 제출 한 콘텐츠의 간섭없이 페이지를 표시하지 않도록하기 위해 종종 HTML 컨텐츠를 청소하거나 필터링해야합니다. 여기에는 안전하지 않거나 불필요한 HTML 태그가 포함될 수 있습니다. PHP에서 Strip_tags 함수는 HTML 문자열에서 특정 태그를 제거하는 데 도움이되는 일반적인 도구입니다.

그러나 SVG 이미지 또는 기타 복잡한 요소를 포함하는 HTML로 작업 할 때 유용한 구조 및 컨텐츠를 유지하면서 특정 태그 만 제거 할 수 있습니다. 예를 들어, 텍스트 및 기타 구조를 유지하면서 SVG 태그를 제거합니다.

Strip_tags 의 기본 사용

PHP의 Strip_tags 함수는 기본적으로 모든 HTML 태그를 제거합니다. 구문은 다음과 같습니다.

 <span><span><span class="hljs-title function_ invoke__">strip_tags</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-literal">null</span></span><span> </span><span><span class="hljs-variable">$allowed_tags</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $ str : 처리 할 html 문자열.

  • $ allud_tags : 옵션 매개 변수, 유지할 태그를 지정합니다. 이 매개 변수가 비어 있으면 모든 태그가 제거됩니다.

예를 들어:

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"&lt;p&gt;This is a &lt;b&gt;bold&lt;/b&gt; paragraph with an &lt;a href='#'&gt;anchor&lt;/a&gt; link.&lt;/p&gt;"</span></span><span>;
</span><span><span class="hljs-variable">$cleaned_html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$cleaned_html</span></span><span>;
</span></span>

출력은 다음과 같습니다.

 <span><span>This </span><span><span class="hljs-keyword">is</span></span><span> a bold paragraph </span><span><span class="hljs-keyword">with</span></span><span> an anchor link.
</span></span>

기본적으로 Strip_tags는 모든 HTML 태그를 삭제합니다. 그러나 특정 태그 (예 : <b> 또는 <a> )를 유지하려면 두 번째 매개 변수로 지정할 수 있습니다.

 <span><span><span class="hljs-variable">$cleaned_html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-string">'&lt;b&gt;&lt;a&gt;'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$cleaned_html</span></span><span>;
</span></span>

출력은 다음과 같습니다.

 <span><span>This </span><span><span class="hljs-keyword">is</span></span><span> a bold paragraph </span><span><span class="hljs-keyword">with</span></span><span> an anchor link.
</span></span>

SVG 태그 제거

일부 복잡한 HTML에서, 특히 SVG (확장 가능한 벡터 그래픽)가 포함 된 경우 Strip_tags는 기본적으로 SVG 태그를 제거합니다. SVG 그래프와 일부 텍스트 내용을 포함하는 다음 HTML이 있다고 가정합니다.

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"&lt;div&gt;Some content before SVG&lt;/div&gt;&lt;svg&gt;&lt;circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' /&gt;&lt;/svg&gt;&lt;div&gt;Some content after SVG&lt;/div&gt;"</span></span><span>;
</span></span>

Strip_tags를 사용하면 전체 SVG 태그가 제거되지만 유용한 콘텐츠를 잃을 수 있습니다. 예를 들어:

 <span><span><span class="hljs-variable">$cleaned_html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$cleaned_html</span></span><span>;
</span></span>

산출:

 <span><span><span class="hljs-keyword">Some</span></span><span> content </span><span><span class="hljs-keyword">before</span></span><span> SVGSome content </span><span><span class="hljs-keyword">after</span></span><span> SVG
</span></span>

현재 Strip_tags 의 두 번째 매개 변수를 사용하여 유지 해야하는 태그를 지정할 수 있지만 SVG 태그는 표준 HTML 태그가 아니므로 추가 처리 방법이없는 경우 Strip_tags는 여전히 전체 SVG 요소를 삭제합니다.

컨텐츠를 유지하고 SVG 태그를 제거하십시오

SVG 태그 만 제거하고 내용물을 유지하려면 두 단계를 수행 할 수 있습니다.

  1. strip_tags를 사용하여 SVG를 제외한 모든 태그를 제거하십시오.

  2. 정규 표현식 또는 기타 방법을 사용하여 SVG 컨텐츠를 처리하고 내부 텍스트 또는 기타 구조를 유지하십시오.

샘플 코드

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"&lt;div&gt;Some content before SVG&lt;/div&gt;&lt;svg&gt;&lt;circle cx='50' cy='50' r='40' stroke='green' stroke-width='4' fill='yellow' /&gt;&lt;/svg&gt;&lt;div&gt;Some content after SVG&lt;/div&gt;"</span></span><span>;

</span><span><span class="hljs-comment">// 단계1:모두 제거하십시오HTML상표</span></span><span>
</span><span><span class="hljs-variable">$cleaned_html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>);

</span><span><span class="hljs-comment">// 단계2:예약하다SVG텍스트 내용 또는 기타 필요한 정보</span></span><span>
</span><span><span class="hljs-variable">$cleaned_html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/&lt;svg.*?&gt;(.*?)&lt;\/svg&gt;/is'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$cleaned_html</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">$cleaned_html</span></span><span>;
</span></span>

출력은 다음과 같습니다.

 <span><span><span class="hljs-keyword">Some</span></span><span> content </span><span><span class="hljs-keyword">before</span></span><span> SVGSome content </span><span><span class="hljs-keyword">after</span></span><span> SVG
</span></span>

요약

Strip_tags는 HTML에서 불필요한 태그를 정리하는 데 매우 유용한 기능입니다. 그러나 SVG 그래픽이 포함 된 HTML 컨텐츠의 경우 특히 SVG에 무언가를 보관해야 할 때 정리할 때 더욱주의해야합니다. 정규 표현식을 결합하면 SVG 태그를 제거하는 동안 텍스트 또는 기타 구조를 유지하여 콘텐츠가 간결하고 중요한 정보를 잃지 않도록 할 수 있습니다.