2014-10-08 3 views
0

웹상의 관련 솔루션을 찾을 수 없어 매우 특별한 문제가있는 것 같습니다. Smarty 템플릿이 있고 약간의 수정을 한 후에 trimwhitespace 필터로 모든 불필요한 공백을 제거 할 수 있습니다. 그러나 태그 안에서 공백 문자를 제거 할 수는 없습니다. 다음 두 가지 예를 살펴보십시오.html 태그 내의 모든 공백을 preg_replace로 자르십시오.

<h1>A headline without any leading whitespace</h1> 

<h1> 
    A headline like it would be formatted by an IDE 
</h1> 

제 생각에는 Smarty trimwhitespace 출력 필터가 두 번째 예제를 자르지 않습니다. CSS : :를 사용하여 헤드 라인 앞에 아이콘을 배치하면 아이콘과 두 번째 예제 사이에 공백이 있지만 첫 번째 예제에는 적용되지 않습니다.

preg_replace를 사용하여 두 번째 예제를 잘라내어 HTML에서 첫 번째 예제처럼 보이게 할 수 있습니까?

답변

2
(?<=<h1>)\s*|\s*(?=<\/h1>) 

본다는 데모를보십시오.

http://regex101.com/r/hQ1rP0/61

+1

감사합니다. 하지만 h1 태그 사이를 교체해야 할뿐만 아니라 모든 html 태그를 교체해야합니다. 정규 표현식의 약간의 수정은 charme처럼 작동합니다 : (? <=>) \ s * | \ s * (? = <\ /) –

+0

@MartinFriedrichBauer 고맙습니다. 쉽지는 않을 것입니다. 일반화하기 : – vks

+0

좋은 아이디어 ,'+'한정자 대신에'+' –

0

이 함수가 도움이됩니다.

function anyname($string) 
{ 
return preg_replace(array('/\s{2,}/', '/\n/'), '', $string); 
} 
관련 문제