2014-04-16 2 views
0
function erase_tag($str){ 

    $str = preg_replace('/<[^>]+>/i'," ",$str); 
    $str = preg_replace("/\s\s/"," ",$str); 
    return $str; 

} 

답변

4

preg_replace 정규식 사용

/<[^>]+>/i 

Regular expression visualization

  • <-<
  • [^>]+ 리터럴 문자 - 아닌 모든 문자가 > (즉, ^입니다) 일치하는 무한 배 1 (즉, +의)
  • > - 그것은 공간 HTML 태그 (또는 <....> 내부에 아무것도)를 대체 >

리터럴 문자. i은 "대소 문자를 구분하는"수정 자이며 우리가 문자를 사용하지 않으므로이 정규 표현식에서 아무것도 의미하지 않습니다. 대안은 빌드 strip_tags() 빌드입니다.


/\s\s/ 

Regular expression visualization

  • \s - 하나의 공백 문자
  • \s - 하나의 공백 문자

두 개의 공백 (탭, 줄 바꿈, 공백)을 한 칸으로 대체합니다. 개인적으로 나는 /\s+/을 선호하는데, 이는 서로간에 무한한 양의 공백을 1에 매치시킵니다.

관련 문제