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

PHP如何将{{包裹的关键词替换为带Slug格式的链接

修改PHP代码实现Slug格式的链接替换

要实现把{{...}}包裹的内容转换成指定的slug格式链接,你需要用preg_replace_callback替代原有的preg_replace,这样可以对每个匹配到的内容做自定义的slug转换处理,具体代码如下:

$string = 'This is my {{important keyword}}. And here is {{Another Example!}}.';
$string = preg_replace_callback('/{{(.*?)}}/', function($matches) {
    $originalText = $matches[1];
    // 生成标准slug格式
    $slug = strtolower($originalText);
    $slug = preg_replace('/\s+/', '-', $slug); // 空格替换为连字符
    $slug = preg_replace('/[^a-z0-9-]/', '', $slug); // 移除特殊字符
    $slug = preg_replace('/-+/', '-', $slug); // 合并连续的连字符
    $slug = trim($slug, '-'); // 去除首尾多余的连字符
    
    // 拼接最终链接
    return '<a href="https://example.com/' . $slug . '">' . $originalText . '</a>';
}, $string);

return $string;

关键处理步骤说明

  • 用preg_replace_callback可以逐个处理每个{{...}}匹配项,而非简单的字符串替换
  • Slug生成流程:
    • 转小写:保证链接格式统一
    • 空格转连字符:符合URL的规范格式
    • 移除特殊字符:过滤掉重音、标点等非URL友好的内容
    • 合并连续连字符:避免出现important--keyword这类不规范的链接
    • 清理首尾连字符:防止链接开头或结尾出现多余符号

测试后,{{important keyword}}会被替换为<a href="https://example.com/important-keyword">important keyword</a>,{{Another Example!}}会变成<a href="https://example.com/another-example">Another Example!</a>,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:31:14