<span><span><span class="hljs-meta"><?php</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-string">"스크립트 실행을 시작하십시오...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h2>strip_tags 그리고 preg_replace 함께 사용될 때,사용자 정의 태그의 필터링 및 처리를 구현하는 방법?</h2>
<p>존재하다PHP가운데,거래하십시오HTML문자열 일 때,经常需要对其가운데的标签进行过滤或替换。<code></span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>()
예제에서 알 수 있듯이 <strong> 태그 만 유지되고 다른 태그 만 삭제됩니다.
preg_replace는 일반 표현식을 지원하며 복잡한 태그 형식과 일치하고 태그 내부의 속성을 처리하는 데 사용할 수 있습니다. 예를 들어:
</span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">"<p class='intro'>샘플 텍스트</p>"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/<p[^>]*>/i'</span></span><span>, </span><span><span class="hljs-string">'<div class="new-intro">'</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">$result</span></span><span>;
</span><span><span class="hljs-comment">// 산출:<div class="new-intro">샘플 텍스트</p></span></span><span>
여기서 우리는 모든 속성 <p> 태그를 New Class & lt 로 대체하기 위해 정기적으로 사용합니다 . div & gt ; 태그. p > <h3> iii . Strip_tags 와 preg_replace를 결합하여 사용자 정의 태그 필터링 및 처리 구현 H3 > <p> strip_tags 는 간단한 기능을 가지고 있으며 태그 속성을 판단하는 것은 불가능하거나 태그의 내용을 다루는 것이 복잡 할 수 없습니다. preg_replace 와 결합하여 먼저 사용자 정의 태그를 표준 태그로 규칙적으로 바꾸거나 속성 조정을 수행 한 다음 Strip_tags를 사용하여 허용되지 않은 태그를 필터링 할 수 있습니다. P > <p> 예 : 우리는 & lt 만 유지하고 싶습니다 . B & GT ; 그리고 & lt ; A & GT ; 태그이지만 사용자 정의 태그를 변환 해야합니다 & lt ; mytag & gt ; & lt ; 스팬 & gt ; & lt 에 대한 HREF 속성 만 ; A & GT ; 태그 . p > <pre> <code> $ html = "이것은 & lt ; mytag & gt ; custom tag & lt ;/ mytag & gt ; 및 & lt ; a입니다 . href = ' http : // 예제 . com ' title =' title '& gt ; link & lt ;/ a & gt ; 그리고 & lt ; B & GT ; 용감한& ; / b & gt ;. "; // 1 단계 : & lt ; mytag & gt ;를 & lt ; span & gt ; $ html = preg_replace ([ '/& lt ; \/? mytag & gt ;/ i '], [ function ($ matches ) { return str_ireplace ([ 'mytag' , '/mytag' ], [ 'span' , '/span' ], $ matches [ 0 ]); }], $ html ); // 2 단계 : <a> 태그의 비 HREF 속성을 필터링합니다. $ html = preg_replace_callback ( '/<a \ s+([^>]*)>/i' , function ( $ matches ) { // href 속성을 유지합니다. if ( preg_match ( '/href \ s * = \ s *[ "\ ' ] ? ' <a href = "'. $ hrefmatch [1]. '"> ' ; } 반품 '<a>' ; }, $ html ); // 3 단계 : strip_tags를 사용하여 지정된 태그를 유지합니다. $ result = strip_tags ( $ html , '<b> <a> <span>' ); 에코 $ 결과 ; 이런 식으로 원래 <mytag>는 <pan>로 대체되며 <a> 태그는 href 속성 만 유지되며 <b>, <a> 및 <span> 태그 만 전체로 유지되고 다른 태그는 제거됩니다.
요구 사항에 따른 정규식 및 필터링 로직의 합리적인 설계는 사용자 정의 레이블 필터링 및 처리를 구현하는 핵심입니다.