查找到文中的关键字,给关键字添加上超级链接。

查找到文中的关键字,给关键字添加上超级链接,如果有进行关键词替换的需求仍然可以基于这个类进行修改。
替换顺序按照数组的索引来的,可以把规则写入数据里,并添加权重字段,可以动态调整关键词替换或者添加超级链接的优先级。

<?php/** * 给文章中的匹配到字符添加上a连接 * Created by PhpStorm. * User: smallForest<1032817724@qq.com> * Date: 2019-06-06 * Time: 09:19 */class addLink{    protected $content = '';    protected $replace_rules = [];    public function __construct($content, $replace_rules)    {        $this->content       = $content;        $this->replace_rules = $replace_rules;    }    public function do_replace()    {        //执行替换返回替换后的字符串        if (!empty($this->replace_rules)) {            foreach ($this->replace_rules as $rule) {                $this->content = preg_replace('/(?!<[^>]*)' . $rule['key_word'] . '(?![^<]*(>|<\/[a|sc]))/s',                    '<a href="' . $rule['url'] . '" target="' . $rule['target'] . '" >' . $rule['key_word'] . "</a>",                    $this->content,                    $rule['replace_times'],                    $count);//通过判断count字段大于0 可以得知替换发送            }        }        return $this->content;    }}$rule = [    [        'key_word'      => '中国人',//关键词        'url'           => 'http://www.baidu.com?id=中国人',//需要加的超链        'target'        => '_blank',//打开方式        'replace_times' => 1,//允许替换的次数次数 -1为不限制次数!    ], [        'key_word'      => '中国',//关键词        'url'           => 'http://www.baidu.com?id=中国',//需要加的超链        'target'        => '_blank',//打开方式        'replace_times' => 1,//允许替换的次数次数 -1为不限制次数!    ],    [        'key_word'      => '人',        'url'           => 'http://www.baidu.com?id=人',        'target'        => '_blank',        'replace_times' => 1,    ],];$obj  = new addLink('我是中国人', $rule);echo $obj->do_replace();