2012-02-08 32 views
1

我使用模板創建了一些由PHP代碼生成的JavaScript。使用PHP縮小動態Javascript

該模板的結果是一個包含JavaScript但文件分散在其中的文件。

我想通過刪除空格和註釋來減小此文件的大小。

但是我能在網上找到的都是純JavaScript的工具,這些工具非常複雜。

我已經準備好編寫一個腳本來減少使用相同系統的HTML和基於CSS的內容,我在尋找有關減小JavaScript文件大小的信息,以便我可以編寫一個可處理PHP代碼的縮小腳本在文件中。

所以我想要的是:

減少JavaScript代碼大小的教程。 我可以分析一個簡單的腳本來減少JavaScript的大小。 或者說用JavaScript代碼PHP在線工作正常,一個工具(必須是公共領域,或開放源碼允許商業作品的使用)

編輯:

$script = preg_replace('%/\*.*?\*/%','',$script); 
$compress = preg_split('%("|\'|/)(?:\\\\|\\\1|[^\1])*?\1|<\?php\s+(?:("|\')(?:\\\\|\\\2|[^\2])*?\2|[^"\']*?)*?\?>%',$script); 
preg_match_all('%(("|\'|/)(?:\\\\|\\\2|[^\2])*?\2|<\?php\s+(?:("|\')(?:\\\\|\\\3|[^\3])*?\3|[^"\']*?)*?\?>)%',$script,$no_compress); 
foreach ($compress as &$block) { $block = preg_replace('%\s+%',' ',$block); } 

我想我已經解決它,上面應該刪除C風格的評論,然後分割剩餘的代碼圍繞PHP塊,Javascript Strings'或者'和Regex Patterns /,並且還提取代碼塊,字符串和正則表達式模式,模式或者字符串中的代碼應該被忽略,因爲它是正則表達式中的第二個選項。 最後一行應該將壓縮塊中的空白空間減少到一個空格

那麼它應該只是塊重組的問題,即

$cscript .= $compress[$i].$no_compress[$i] 

要重建腳本。

我錯過了什麼?

回答

6

你想要這樣的東西嗎?

http://code.google.com/p/minify/

+0

嘿!太棒了。就一個問題。我可以在生產服務器上使用它嗎?我的意思是它不會產生任何問題或漏洞 – 2017-08-31 07:48:33

+0

我也想在Zend中實現它。什麼是最好的方法? – 2017-08-31 08:03:59

0

通過動態JavaScript你的意思的JavaScript已經散落通過它PHP標籤?如果是這種情況,那麼你真的應該找到新的編程方法就像一個JSON流。我也在我的網站中使用了有效載荷,這可能是一種你不想使用PHP JS的簡潔方法。您可能可以使用通用PHP和JS Minifier來縮小PHP頁面。祝你好運。