Рубрики
Uncategorized

Найдите ключевые слова в статье и добавьте гиперссылку на ключевые слова

Автор оригинала: David Wong.

Найдите ключевые слова в статье и добавьте к ним гиперссылки.

Найдите ключевые слова в тексте и добавьте к ним гиперссылку. Если есть необходимость в замене ключевого слова, вы все равно можете изменить его на основе этого класса. Порядок замены основан на индексе массива. Вы можете записать правила в данные и добавить поля веса. Вы можете динамически настраивать приоритет замены ключевого слова или гиперссылки.

php
/**
 *Add a connection to match to character in Article
 * Created by PhpStorm.
 * User: smallForest<[email protected]>
 * 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()
    {
        //Replace returns the replaced string
        if (!empty($this->replace_rules)) {
            foreach ($this->replace_rules as $rule) {
                $this->content = preg_replace('/(?!<[^>]*)' . $rule['key_word'] . '(?![^<]*(>|<\/[a|sc]))/s',
                    '' . $rule['key_word'] . "",
                    $this->content,
                    $rule['replace_times'],
                    $count); // you can know the replacement result by judging that the count field is greater than 0.
            }
        }
        return $this->content;
    }
}

$rule = [
    [
        'key_word' = > 'Chinese', // keyword
        'URL' = > http://www.baidu.com? Id = Chinese ', // hyperlink to be added
        'target' = >
        'replace_times' = > 1, // the number of times allowed to replace - 1 is unlimited!
    ], [
        'key_word' = > 'China', // keyword
        'URL' = > http://www.baidu.com? Id = China ', // hyperlink to be added
        'target' = >
        'replace_times' = > 1, // the number of times allowed to replace - 1 is unlimited!
    ],
    [
        'key Ou word' = > person ',
        'URL' = > http://www.baidu.com? Id = person ',
        'target'        => '_blank',
        'replace_times' => 1,
    ],
];
$obj = new addlink ('I'm Chinese ', $rule);
echo $obj->do_replace();