一段小代码,发布网页时为js 、css 文件加上版本号

复制代码
<?php

 function addver($str,$version){ // $str: html file codes
         $head = '/\<head\>.*\<\/head\>/is';
        $search = '/\.css\\s*(?=["\'])/i';        
        $replace = '.css?v='.$version;        
        $search_js = '/\.js\\s*(?=["\'])/i';
        $replace_js = '.js?v='.$version;  
        
        preg_match($head ,$str,$matched);
        $tempStr =  preg_replace($search, $replace, $matched[0]);        
        $tempStr =  preg_replace($search_js, $replace_js, $tempStr );
        
        return preg_replace($head ,$tempStr, $str);        
    }


    //test
    $str = '
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" type="text/css" href="../style/common.css "/>
        <link rel="stylesheet" type="text/css" href=\'../style/layout.CSS\'/>
        <link rel="stylesheet" type="text/css" href="../style/module.css"/>
        <script type="text/javascript" src="../script/jquery.min.js?v=1.3.2"></script>
        <script type="text/javascript" src="../script/jquery-ui.custom.min.js?v=1.7.3"></script>
        <script type="text/javascript" src="../script/commoned.js"></script>
        <script type="text/javascript" src="../script/base.js?v=0.0.1"></script>
        <script type="text/javascript" src="../script/apage.js"></script>
        <script type="text/javascript" src="../script/checklogin.js"></script>
        <script type="text/javascript" src="../script/pages/employee-add.js"></script>
        <title>test</title>
    </head>    
    <body>
    
    <input id="tst" class="btn" type = "button" value = "test css and jq"/>
    <script>
    alert($("#tst").attr("id"));
    </script>
    <div style = "margin:100px;">.css"    .js"</div>            
    </body>
    </html>
    ';

    echo "<hr />";
    echo addver($str,'1.0');  
    echo "<hr />";  
    
?>
复制代码
posted @   ecalf  阅读(980)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示