You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求PHP函数:替换URL可变年月为指定字符串并移除.html后缀

解决PHP中URL年月替换与扩展名移除的问题

没问题,我来帮你搞定这个正则匹配和函数实现!首先咱们明确核心需求:把URL里的/年份/月份/结构替换成/energy-environment-blog/,同时去掉末尾的.html扩展名。

正则模式解析

针对可变年月的部分,咱们可以用这个精准匹配的正则:\/\d{4}\/\d{2}\/

  • \/:转义斜杠,匹配URL路径中的分隔符(因为斜杠在正则里是语法分隔符,必须转义才能匹配实际字符)
  • \d{4}:匹配4位数字的年份(覆盖2000-2099这类常见博客年份格式)
  • \d{2}:匹配2位数字的月份(01-12的格式都能命中,如果需要严格验证有效月份,可以改成\/(0[1-9]|1[0-2])\/,不过一般博客URL的年月格式都是规范的,基础版本足够用)

完整PHP函数实现

结合替换逻辑和扩展名移除,写一个通用的处理函数:

function transformBlogUrl($url) {
    // 第一步:替换URL中的年月路径段
    $yearMonthPattern = '/\/\d{4}\/\d{2}\//';
    $replacementPath = '/energy-environment-blog/';
    $urlWithoutYearMonth = preg_replace($yearMonthPattern, $replacementPath, $url);
    
    // 第二步:移除末尾的.html扩展名
    $finalUrl = preg_replace('/\.html$/', '', $urlWithoutYearMonth);
    
    return $finalUrl;
}

测试示例

咱们来验证几个常见的URL场景:

  • 输入:"https://myblog.com/2024/03/solar-panel-installation.html"

  • 输出:"https://myblog.com/energy-environment-blog/solar-panel-installation"

  • 输入:"/archive/2023/10/water-conservation-tips.html"

  • 输出:"/archive/energy-environment-blog/water-conservation-tips"

如果你的URL有特殊结构(比如年月不在路径中间),可以给正则加前后限定符来精准定位,比如用/\/\d{4}\/\d{2}\//就能确保只匹配独立的年月路径段,不会误匹配其他数字组合。

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:24:24