<?php
//php js css加载合并函数 宋正河整理
//转载请注明出处
define('COMBINE_JS',true);
define('COMBINE_CSS',true);
 
define('APPLICATION_JS_ROOT','E:/wwwroot/m/js/');
define('APPLICATION_CSS_ROOT','E:/wwwroot/m/css/');
 
define('SC_ROOT','E:/wwwroot/m/static_cache/');
define('SC_URL','http://www.localhost.com/m/static_cache/');
 
define('APPLICATION_JS','http://www.localhost.com/m/js/');
define('APPLICATION_CSS','http://www.localhost.com/m/css/');
 
function load_combine_js($js,$path=array(),$origin=false,$part=1){
    if(!is_array($js)) return false;
    if(empty($path)){
        $path_url=APPLICATION_JS;
        $path_root=APPLICATION_JS_ROOT;
    }
    if($origin or (!COMBINE_JS)){
        $string='';
        for($i=0;$i<count($js);$i++){$string.="<script src='{$path_url}{$js[$i]}.js'></script>\n";}
        echo $string;
        return true;
    }
    $cache_filename='js-'.md5($_SERVER['SCRIPT_NAME'].$part).'.js';
    if(!file_exists(SC_ROOT.$cache_filename)){
        $file_content='';
        for($i=0;$i<count($js);$i++){
            $f=$path_root.$js[$i].'.js';
            if(file_exists($f)) $file_content.=file_get_contents($f)."\n";
        }
        file_put_contents(SC_ROOT.$cache_filename,$file_content);
    }
    $file=SC_URL.$cache_filename;
    echo "<script src='{$file}'></script>\n";
    return true;
}
 
function load_combine_css($css,$path=array(),$origin=false,$part=1){
    if(!is_array($css)) return false;
    if(empty($path)){
        $path_url=APPLICATION_CSS;
        $path_root=APPLICATION_CSS_ROOT;
    }
    if($origin or (!COMBINE_CSS)){
        $string='';
        for($i=0;$i<count($css);$i++){$string.="<link href='{$path_url}{$css[$i]}.css' rel='stylesheet' type='text/css' />\n";}
        echo $string;
        return true;
    }
    $cache_filename='css-'.md5($_SERVER['SCRIPT_NAME'].$part).'.css';
    if(!file_exists(SC_ROOT.$cache_filename)){
        $file_content='';
        for($i=0;$i<count($css);$i++){
            $f=$path_root.$css[$i].'.css';
            if(file_exists($f)) $file_content.=file_get_contents($f)."\n";
        }
        file_put_contents(SC_ROOT.$cache_filename,$file_content);
    }
    $file=SC_URL.$cache_filename;
    echo $string="<link href='{$file}' rel='stylesheet' type='text/css' />\n";
    return true;
}
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<?php
load_combine_js(array('a','b'),array(),true);
load_combine_js(array('a','b'));
load_combine_css(array('1','2'),array(),true);
load_combine_css(array('1','2'));
?>
</head>
<body>
123
</body>
</html>

php js css加载合并函数 宋正河整理的更多相关文章

  1. php codeigniter (CI) oracle 数据库配置-宋正河整理

    database.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 $active_group = 'default'; $active_record ...

  2. svn图文教程-宋正河整理

    下载地址:http://download.csdn.net/download/songzhengdong82/4433476 在线浏览:http://wenku.baidu.com/view/07f1 ...

  3. js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...

  4. CSS样式表、JS脚本加载顺序与SpringMVC在URL路径中传参数与SpringMVC 拦截器

    CSS样式表和JS脚本加载顺序 Css样式表文件要在<head>中先加载,这样网页显示时可以第一次就渲染出正确的布局和样式,网页就不会闪烁,或跳变 JS脚本尽可能放在<body> ...

  5. 定时器详解和应用、js加载阻塞、css加载阻塞

    1.setTimeout().setInterval()详解和应用 1.1 详解: setTimeout.setInterval执行时机 1.2 存在问题: setInterval重复定时器可能存在的 ...

  6. js动态加载css文件和js文件的方法

    今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...

  7. JS和CSS加载(渲染)机制不同

    一.结论 CSS可以在页面加载完成后随时渲染.举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效. JS不可以在页面加载完成后生效.最明显的 ...

  8. js动态加载数据并合并单元格

    js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...

  9. 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法   一.CSS和 ...

随机推荐

  1. 索引&切片 切割split

    索引   s[n]                                                        # 中括号里n为一个数字 切片    s[0:9]           ...

  2. ASP.NET MVC 3 Performance – on par with MVC 2

    http://blogs.msdn.com/b/marcinon/archive/2011/01/17/mvc-3-performance.aspx ASP.NET MVC 3 Performance ...

  3. debian 7 linux 安装jdk出现Error occurred during initialization of VM java/lang/NoClassDefFoun

    debian 7 linux 安装jdk出现Error occurred during initialization of VM java/lang/NoClassDefFoun 这两天一直研究lin ...

  4. 使用js插件进行设备检测

    一.分析新浪网是怎么做的   如新浪网有两种版本,一种是pc版,存放在www.sina.com.cn这个服务器上:另外一种是手机版,存放在www.sina.cn这个服务器上 原理是当用户输入网址www ...

  5. Java基础加强之集合

    集合整体框架图 各集合框架的概述 1. Collection(常用List和Set,不常用Queue和Vector),单元素集合. 2. Map(常用HashMap和TreeMap,不常用HashTa ...

  6. jenkins ansible

    ansible-playbook - hosts: test remote_user: root vars: warpath: "/root/.jenkins/workspace/172.1 ...

  7. 集合之HashSet

    在前篇博文中(java提高篇(二三)-----HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素.所以如果对H ...

  8. 根据经纬度获取位置描述:百度API与高德API的区别

    百度API 使用百度坐标 1.访问方式一 http://api.map.baidu.com/geocoder/v2/?location=35.063592,118.38513&output=j ...

  9. 简单部署iRedMail-0.9.8 - 邮件服务器架构和错误代码

    1.去官网下载最新稳定版软件 https://www.iredmail.com/index.html 2.https://docs.iredmail.org/install.iredmail.on.r ...

  10. SQLSERVER存储过程语法具体解释

    SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }   ...