2012-07-06 5 views
-2

html 코드 시퀀스에서 숨겨진 (표시가있는 : 해당 스타일이 없음) 제거하는 PHP 정규식이 필요합니다. 나는 그것을 폭발 시키려고 노력했지만 그것을 엉망으로 판명했다. 예를 들어숨겨진 (표시 : 없음) html 태그를 PHP에서

<span> 
<span style="display: inline">69</span> 
<span style="display:none">113</span> 
<span></span> 
<span class="" style="">.</span> 
<span style="display: inline">86</span> 
<span style="display:none">59</span> 
<span></span> 
.206 
<span></span> 
.143 
</span> 

아래의 HTML 코드는 다음과 같이 판명해야합니다

<span> 
<span style="display: inline">69</span> 
<span></span> 
<span class="" style="">.</span> 
<span style="display: inline">86</span> 
<span></span> 
.206 
<span></span> 
.143 
</span> 

감사합니다.

+9

** HTML을 조작하기 위해 regexes를 사용하지 마십시오. 특히 HTML이 약간 변형 된 경우에는 큰 슬픔을 느끼게 될 것입니다. DOM을 대신 사용하십시오. http://stackoverflow.com/a/1732454/118068 –

+0

@MarcB 조랑말이 돌아왔다! :-) –

+2

질문에 대한 한 가지 팁 : 숨겨진 코드를 제거하는 것에 대해 말했을 때 코드를 "숨김"으로 스캔했고 찾지 못했을 때 매우 혼란스러워했습니다. 나는 꼭대기에서 시작해서 당신이'display : none'을 언급하고 있다는 것을 알아야했습니다.'display : none'이 여러분이 의미하는 것이라면, 그냥 말하십시오. – KRyan

답변

0

HTML은 정규 언어가 아니므로 정규식으로는 구문 분석 할 수 없습니다.

당신이 생각을 사용한 다음은 PHP를 반환 무엇을 사용할 수 있습니다

: 당신이 그렇게하지 않으려면, 당신은 DOM과에서 removeChild 기능을 사용할 수 있습니다

http://api.jquery.com/remove/

$("span[style='display:none']").remove(); 

: http://php.net/manual/en/domnode.removechild.php

+0

OP가 원함 PHP에서 그것을 할 수 있지만 그렇지 않으면 이것은 올바른 방법이 될 것입니다. –

+0

이 (가) 편집되었습니다. 이제 그는 옵션이 있습니다;) – maxhud

+0

이것이 제 두 번째 옵션이었습니다. 나는 더 빠른 정규식 메소드를 원했습니다. 감사! –

관련 문제