2014-01-16 2 views
-2

PHP 스크립트로 일부 html 파일을 정리하고 있는데 <tag></tag> 사이에있는 \n 개를 모두 제거하려고합니다.모든 줄 바꿈을 제거하는 방법 html 태그 외부로

<p>some text</p> 


      <- here are the bunch of \n I want to remove 


<p>some other random 
text with \n at fixed width 
and that's great</p> 

아이디어가 있으십니까? 많은 감사.

+1

''태그 내부에 있지만 그 하위 태그의 바깥 쪽을 의미합니다. – techfoobar

+0

외부의 바깥 쪽. good notgood good Lego

+0

DOM 파서를 사용하고 공백 만있는 모든 하위 태그를 제거하십시오. DOMDocument 문서를 이미 보았습니까? –

답변

1

이와 비슷한 것이 있습니까?

<?php 
$html=<<<SOMECONT 
<p>some text</p> 





<p>some other random 
text with \n at fixed width 
and thats great</p> 
SOMECONT; 

$narr=array_filter(explode(PHP_EOL,$html),'strlen'); 
echo implode('',$narr); 

출력 :

<p>some text</p><p>some other randomtext with 
at fixed widthand thats great</p> 

편집 :

대안은 더 "더러운"수 있지만 작동 할 수 있음. Afterall, htmltags 사이의 \ n을 모두 제거하면 원본 파일의 압축 된 문자열에서 빈 줄을 제거하는 것처럼 간단 할 수 있습니다.

$split = explode(PHP_EOL,$data); 
    $data= ""; 
    for($i = 0; $i < count($split); $i++){ 
    $line = $split[$i]; 
    else if(strlen($line) > 0) $data .= $split[$i]."\n"; // filter 
    } 
+0

html 태그간에 줄 바꿈을 제거하지 않겠습니까? – Lego

+2

strlen 여기서 길이가> 0인지 확인하여 각 "빈 줄"을 제거 하시겠습니까? 그것은 작동해야하지만 어떻게 든 그것은 그렇지 않습니다. 하지만 PHP_EOL에서 폭발로 같은 일을하고 strlen()으로 필터링하는 더러운 방법을 만들었습니다. 감사합니다. – Lego

+0

@ 레고, 다행 이군요. 당신은 당신이했던 것처럼이 대답을 편집 할 수 있으므로 다른 사람들이 이익을 얻을 수 있습니다!. –

관련 문제