
<?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 />";
?>

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述