当前位置: 首页> 最新文章列表> 如何使用 mb_eregi_replace 实现全站 URL 替换,比如网站更换域名时

如何使用 mb_eregi_replace 实现全站 URL 替换,比如网站更换域名时

M66 2025-06-12

替换全站 URL 的思路

假设你的网站内容存储在数据库里,或以文本文件形式存在,URL 格式如下:

http://old-domain.com/path/to/page
https://old-domain.com/another/page

如果需要替换成新的域名,比如 https://m66.net,我们可以:

  1. 定义一个匹配旧域名 URL 的正则表达式。

  2. 利用 mb_eregi_replace 替换成新域名 URL。

  3. 保存替换后的内容。

示例代码

<?php
// 旧域名(示例)
$oldDomain = 'old-domain.com';

// 新域名
$newDomain = 'm66.net';

// 待处理的内容,假设包含多个 URL
$content = <<<EOD
欢迎访问我们的网站:http://old-domain.com/home
更多信息请访问:https://old-domain.com/about-us
联系方式:http://old-domain.com/contact
EOD;

// 定义正则表达式,匹配 http 或 https 开头,后面跟旧域名,大小写不敏感
$pattern = 'https?://'.$oldDomain;

// 使用 mb_eregi_replace 替换成新域名
// 替换为 https://m66.net + 原路径
$replacedContent = mb_eregi_replace(
    $pattern,
    'https://'.$newDomain,
    $content
);

// 输出替换后的内容
echo $replacedContent;
?>

运行结果:

欢迎访问我们的网站:https://m66.net/home
更多信息请访问:https://m66.net/about-us
联系方式:https://m66.net/contact

进阶:保持路径和参数不变

上述代码中,mb_eregi_replace 只替换了域名部分,且保持 URL 后面的路径不变。这是因为正则匹配的是 http(s)://old-domain.com,替换时只替换这部分,不影响后续路径。

如果想要匹配更复杂的 URL,也可以写更完整的正则表达式,例如:

$pattern = '(https?://)'.$oldDomain;

这样,mb_eregi_replace 仍然可以准确匹配并替换。


总结

  • mb_eregi_replace 支持多字节编码的大小写不敏感替换,非常适合处理含中文或其他多字节字符的文本。

  • 通过构造正确的正则表达式,能够方便地实现网站内容中的 URL 批量替换。

  • 替换时注意保持 URL 的路径和参数不变,确保链接功能正常。

利用此方法,可以快速高效地完成网站更换域名时的全站 URL 替换工作,避免人工逐条修改的低效和风险。

  • 相关标签:

    URL