<?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. 占位符 %s

    a = input("Name:")b = input("Age:")c = input("Job:")d = input("ho ...

  2. python第八课——random模块的使用

    2.2.如何获取随机整数值? 引入random模块的使用 randint(a,b)函数:作用:返回给程序一个[a,b]范围内的随机整数注意:含头含尾闭区间 思路步骤: 第一步:导入random模块到相 ...

  3. 第三周:Excel分析

    Excel常用于敏捷,快速,需要短时间相应的场景下是非常便捷的数据处理工具. 相对于语言类例如python和R等则用于常规的,规律的场景中应用,便于形成日常规则统计分析. 对于学习的路径:Excel函 ...

  4. 看到了一个pipeline例子,

    pipeline { agent any options { timestamps() } parameters { string(name: 'GIT_BRANCH', defaultValue: ...

  5. 多线程之CountDownLatch、CyclicBarrier和Semaphore

    Java并发编程:CountDownLatch.CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch ...

  6. ZOJ 3872 浙江2015年省赛试题

    D - Beauty of Array Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu S ...

  7. 名字&值

    1)名字VS值 名字和内存(存储)位置相关联. 名字—(环境)———>位置——(状态)——>值 这两个映射都在随着程序的运行而改变. 2)环境VS状态 环境是指一个名字到存储位置映射,也可 ...

  8. 【TOJ 2406】Power Strings(KMP找最多重复子串)

    描述 Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc& ...

  9. linux学习第十七天(NFS、AUTOFS文件共享配置,DNS配置)

    一.NFS(网络文件系统,实现linux系统上文件共享) 服务器配置 yum install nfs-utils  (安装NFS软件包) iptables -F  (清空防火墙) service ip ...

  10. centos7.4安装redis以及配置外网访问

    一.安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@VM_34_108_c ...