假设你的网站内容存储在数据库里,或以文本文件形式存在,URL 格式如下:
http://old-domain.com/path/to/page
https://old-domain.com/another/page
如果需要替换成新的域名,比如 https://m66.net,我们可以:
定义一个匹配旧域名 URL 的正则表达式。
利用 mb_eregi_replace 替换成新域名 URL。
保存替换后的内容。
<?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