php js css加载合并函数 宋正河整理
<?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加载合并函数 宋正河整理的更多相关文章
- 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 ...
- svn图文教程-宋正河整理
下载地址:http://download.csdn.net/download/songzhengdong82/4433476 在线浏览:http://wenku.baidu.com/view/07f1 ...
- js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...
- CSS样式表、JS脚本加载顺序与SpringMVC在URL路径中传参数与SpringMVC 拦截器
CSS样式表和JS脚本加载顺序 Css样式表文件要在<head>中先加载,这样网页显示时可以第一次就渲染出正确的布局和样式,网页就不会闪烁,或跳变 JS脚本尽可能放在<body> ...
- 定时器详解和应用、js加载阻塞、css加载阻塞
1.setTimeout().setInterval()详解和应用 1.1 详解: setTimeout.setInterval执行时机 1.2 存在问题: setInterval重复定时器可能存在的 ...
- js动态加载css文件和js文件的方法
今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...
- JS和CSS加载(渲染)机制不同
一.结论 CSS可以在页面加载完成后随时渲染.举个例子:通过js给某个元素加一个id或者css,只要这个id或者css有对应的样式,此元素的样式就会自动生效. JS不可以在页面加载完成后生效.最明显的 ...
- js动态加载数据并合并单元格
js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...
- 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法 一.CSS和 ...
随机推荐
- NTRIP协议学习(一)
这篇博客讲得很清晰. https://blog.csdn.net/sinat_19447667/article/details/67637167 可以参考的文献包括:<多系统GNSS实时数据质 ...
- 第二次项目冲刺(Beta版本) 合集
小组成员 [组长]金盛昌(201421122043).刘文钊(20142112255).陈笑林(201421122042) 张俊逸(201421122044).陈志建(201421122040).陈金 ...
- QT5.8连接Mysql提示QMYSQL driver not loaded
我们都知道在QT5.8系列里已经带了Mysql的dll文件 驱动的名字为“qsqlmysql.dll”和“qsqlmysqld.dll” 但是按照网上的各种教程和博客基本都是错的,只有个别人是对的. ...
- redis 配置文件redis.conf
daemonize yes #---默认值no,该参数用于定制redis服务是否以守护模式运行.--- pidfile /var/run/redis.pid #默认值/var/run/redis.pi ...
- c++ thread 使用不当导致的崩溃问题
看个例子 class CTimer{ public: // 析构函数 virtual ~CTimer(){ } // 开始 void start() { b_exit = false; i = ; t ...
- 情绪ABC理论
美国著名心理学家阿尔伯特·艾利斯 [Albert Ellis 1913.09.27]于20世纪50年代创立, 其理论认为引起人们情绪困扰的并不是外界发生的事件,而是人们对事件的态度.看法.评价等认知内 ...
- BZOJ1135:[POI2009]Lyz(线段树,Hall定理)
Description 初始时滑冰俱乐部有1到n号的溜冰鞋各k双.已知x号脚的人可以穿x到x+d的溜冰鞋. 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人.xi为负,则代表走了这么多人 ...
- 《信息安全技术》实验一 PGP的原理与使用
<信息安全技术>实验一 PGP的原理与使用(macOS High Sierra下实现) 实验目的 理解传统加密.公钥加密.混合加密.数字签名等概念 理解公钥.私钥.会话密钥.对称密钥等概念 ...
- jquery mobile mobiscroll 日期插件使 用mobiscroll
官网网站: http://www.mobiscroll.com/ http://code.google.com/p/mobiscroll/ 1.精简版Demo: 查看Demo » 下载Demo » 2 ...
- Linux磁盘分区和挂载
Linux磁盘分区和挂载 分区 分区的方式: mbr分区 最多支持4个主分区 系统只能安装到主分区上 扩展分区要占用一个主分区 MBR最大支持2TB,但拥有最好的兼容性 gtp分区 支持无线多个主分区 ...