2014-07-16 5 views
3

필자는 테스트 프로젝트에 phalconphp 프레임 워크를 사용합니다. PhalconPHP에서 HTML 코드를 축소하는 방법

$this->view->setVar('myData', $data); 

이보기에 HTML 코드를 작게를하는 PhalconPHP의 모든 도구가 있습니다

나는 다음 코드를 사용하여 간단한 컨트롤러가?

감사합니다.

+2

웹 서버 수준에서 수행하는 것이 좋습니다. Google은 웹 서버에서이를 구현할 수있는 훌륭한 도구를 제공합니다. –

+1

좋은 생각. mod_pagespeed를 사용하십시오. 이 도구는 웹 사이트와 리소스를 압축하는 많은 기능을 가지고 있습니다! –

+0

감사합니다. 나는 그것을 시도 할 것이다! – Sergey

답변

0

CSS 당신은 여기에서 볼 수있는 자바 스크립트 내장 함수에 의해 축소 된 : 그것은이 작업을 수행하는 것이 일반적 아니기 때문에 HTML을 축소에 대한 도구가없는 것처럼 http://docs.phalconphp.com/en/latest/reference/assets.html#minification-filtering

것 같다. 그러나 자신의 "축소"기능을 작성하는 것을 고려하십시오. 줄 바꿈 HTML 코드에 영향을 미치지 않는다 당신이 이런 식으로 뭔가로 출력에 제거 할 수 있기 때문에 할 일이 많이가되지 않습니다 :

str_replace(array("\r\n", "\r"), "", $output); 

또한 - 당신은 귀하의 콘텐츠에 하나 이상의 공백을 사용하지 않는 경우 -이 같은 탭, 줄 바꿈과 공백을 제거 할 수 있습니다 :이 시점에서

preg_replace("/\s+/", " ", $string); 
+0

내가 잘못 읽었습니다. 그래 -1 나를 위해 :-) 여전히'\ r'로 변환하는 것은 이상합니다. "아무것도"사용하지 않습니다. – PeeHaa

+0

그럼 그게 잘못이 아니야, 피셔. 줄 바꿈이 문제가되는 한 가지 예 : http://jsfiddle.net/VNMs9/ 결국 mod_pagespeed를 사용하는 것이 최상의 솔루션입니다. –

1

이 아직 내장 할 수 없습니다 그러나 작게하다 옵션을 달성하기 위해이 기능을 사용했습니다..

function minifyHTML($content) 
{ 
    $start = strpos($content, '[#strip#]'); 

    if ($start > 0) { 

     $end = strpos($content, '[#endstrip#]'); 

     $part = substr($content,$start, $end - $start + 12); 

     $content = str_replace($part,str_replace(array("\r", "\n", "\t" , 
      '[#strip#]', '[#endstrip#]'), '' , $part) , $content); 

     if(strpos($content, '[#strip#]') > 0) 
      $content = stripHTML($content); 
    } 
    return $content; 
} 

그런 다음 볼트 파일에서 다음과 같이 사용하십시오. 하지만 탭을 공백 대신 들여 쓰기로 볼트 파일에 사용하십시오. 또한 [# strip #] 태그는 중첩 할 수 없습니다.

<!DOCTYPE html> 
<html lang="nl"> 
<head>[#strip#] 
    <meta charset="utf-8"> 
    {% block head %} 
     {{ assets.outputCss() }} 
    {% endblock %} 
    <title>{% block title %}{% endblock %}</title> 
[#endstrip#]</head> 
<body> 
{% block content %} 
{% endblock %} 
{% block script %} 
    [#strip#]{{ assets.outputJs() }}[#endstrip#] 
{% endif %} 
{% endblock %} 
</body> 
</html> 

마지막으로 handle() -> getContent()에서 사용하십시오.

$application = new \Phalcon\Mvc\Application($di); 
echo minifyHTML($application->handle()->getContent()); 
관련 문제