用PHP在服務端合并多個JS和CSS檔案減少HTTP請求,提高速度

來源:互聯網
上載者:User

HTML:

 代碼如下 複製代碼
<link rel="stylesheet" type="text/css" href="cssmin.php?get=base,style1,style2,global&path=css/&v=20131023" />
<script type="text/javascript" src="jsmin.php?get=jquery-1.6.4.min.js,minjquery.js,minjquery.ui.js,test.js,global.js&path=js/&v=20131023"></script>

PHP:

 代碼如下 複製代碼
//輸出JS
header ("Content-type:Application/x-javascript; Charset: utf-8");
if(isset($_GET)) {
    $files = explode(",", $_GET['get']);
    $str = '';
    foreach ($files as $key => $val){
        $str .= file_get_contents($_GET['path'].$val);
    }

    $str = str_replace("t", "", $str); //清除空格
    $str = str_replace("rn", "", $str);
    $str = str_replace("n", "", $str);

    // 刪除單行注釋
    $str = preg_replace("///s*[a-zA-Z0-9_x7f-xff][a-zA-Z0-9_x7f-xff]*/", "", $str);
    // 刪除多行注釋
    $str = preg_replace("//*[^/]**//s", "", $str);

    echo $str;
}

//輸出CSS
header ("content-type:text/css; charset: utf-8");
if(isset($_GET)) {
    $files = explode(",", $_GET['get']);
    $fc = '';
    foreach ($files as $key => $val){
        $fc .= file_get_contents($_GET['path'].$val.".css");
    }
    $fc = str_replace("t", "", $fc); //清除空格
    $fc = str_replace("rn", "", $fc);
    $fc = str_replace("n", "", $fc);
    $fc = preg_replace("//*[^/]**//s", "", $fc);
    echo $fc;
}

只是個簡單原型,沒有封裝。另外,合并後的檔案記得配合緩衝。

附上一個相關的開源項目:
http://code.google.com/p/minify/

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.