2013-10-15 2 views
0

이 태그를 제거하지 않고 HTML 코드에서 태그의 모든 속성을 제거 preg_replace이다에 대해 나에게 PHP 정규식을 제안하십시오 같이 링크에서 HREF, terget, REL을 유지한다. 그러나 하이퍼 이러한 HREF, terget 모든 속성을 링크로 남아 있어야 확인해은는 PHP의 모든 속성을 제거하지만

는 아래의 예를 참조하십시오입니다 :

는 이미 preg_replace이다정규식 아래 시도 :

$htmltext = '<p style="float: left;"> 
<span style="color: #ff0000;"> 
<b>Some text here</b> 
</span> 
<a target="_blank" rel="nofollow" href="http://thebankexam.com/page/7017">Clickable Text</a> 
</p>'; 
$my_output = preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>',$htmltext); 
echo $my_output; 

필터링 된 출력 ($ my_output) :

의도 된 출력과 같아야합니다

<p> 
<span> 
<b>Some text here</b> 
</span> 
<a target="_blank" rel="nofollow" href="http://thebankexam.com/page/7017">Clickable Text</a> 
</p> 
+0

예 오웬, 클릭 가능한 링크가 – Hrishi

+0

속성을 제외하고 http://stackoverflow.com/questions/1732348/regex-match-open-tags-except -xhtml-self-contained-tags – Sergio

+0

아래 정규식을 가졌지 만 href, rel 및 target도 제거하고' Clickable Text'REGG :'preg_replace ("/ <([az] [a-z0- (<$1$2> ', $ htmltext)' – Hrishi

답변

2
preg_replace('/<a\s+[^>]*href\s*=\s*"([^"]+)"[^>]*>/', '<a href="\1">', $html); 
+0

/<[^ a] * \ b [\ t] ..... 앵커가 아니라 ... –

+0

@OwenBeresford 무엇을 의미합니까? 내 코드가하는 일을 이해하지 못한다고 생각합니다. – Marek

+0

작업 사양은 앵커의 일부가 아닌 곳에 속성을 제거한다고 말했습니다. OP가 내 첫 번째 댓글에서 작업을 업데이트했습니다. 정규 표현식과 일치하는 정규식입니다. –

관련 문제