2011-03-16 5 views
1

현재 문서에 에코로 표시되는 문자열이 있습니다. 그러나 <body> 안에 내용 만 삽입하고 싶습니다. 유효 태그로 끝내려면 어떻게해야합니까? 문서.PHP가 중복 html 본문 및 헤더를 제거합니다

$string = ' 
    <html> 
    <head> 
    <title>Title</title> 
    </head> 
    <body> 
     <!-- leave any tag within the body --> 
    </body> 
    </html> 
'; 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Title</title> 
</head> 
<body> 
    <?php echo $string; // new valid content ?> 
    <!-- more content --> 
</body> 
</html> 
+0

어디에서 얻을 수 있습니까? –

+0

알았습니다. 고마워요! –

답변

0

당신은 <body> 태그를 검색하고 시작점을 찾기 위해 6을 추가하고 </body> 최종 지점을 찾은 다음 문자열에 SUBSTR을 할 수 있도록 다음 검색 할 수 있습니다. 태그에 속성이 없는지 확인해야합니다. 올바르게 수행되었는지 확인하려면 <body을 찾아 다음 >을 찾고 시작점에 1을 추가하십시오.

+1

또는 게으른 경우 그냥 정규식을 사용할 수 있습니다. ;) –

0

보낸 사람 Php.net;

<?php 
function strip_selected_tags($str, $tags = array(), $stripContent = false) 
{ 
    preg_match_all("/<([^>]+)>/i", $tags, $allTags, PREG_PATTERN_ORDER); 
    foreach ($allTags[1] as $tag) { 
     $replace = "%(<$tag.*?>)(.*?)(<\/$tag.*?>)%is"; 
     $replace2 = "%(<$tag.*?>)%is"; 
     echo $replace; 
     if ($stripContent) { 
      $str = preg_replace($replace,'',$str); 
      $str = preg_replace($replace2,'',$str); 
     } 
      $str = preg_replace($replace,'${2}',$str); 
      $str = preg_replace($replace2,'${2}',$str); 
    } 
    return $str; 
} 
?> 
관련 문제