PHP функция для автоматического закрытия внешних ссылок атрибутом rel="nofollow"

Хостинг с которым я работаю. Так что это даже как-бы не реклама

Хостинг unihost.com плюс домен бесплатно
Пользовательский поиск

Понравилось? Поделитесь с знакомыми и друзьями!

nofollow link Небольшая функция, прогнав через которую текст на выходе получаем закрытыми атрибутом rel="nofollow" все ссылки кроме внутренних.
static public function autoclose_links($content)
    {
        if (empty($content))
        {
            return "";
        }
        $html = $content;
        $skip = $_SERVER["HTTP_HOST"];
        return preg_replace_callback(
            "#(<a[^>]+?)>#is", function ($mach) use ($skip) {
                return (
                !($skip
                    && strpos($mach[1], $skip) !== false
                    && strpos($mach[1], 'rel=') === false)
                    && (substr_count($mach[1],'href="/')==0 && substr_count($mach[1],'href=\'/')==0)
                ) ? $mach[1] . ' rel="nofollow">' : $mach[0];
        },
            $html
    );
    }
Регулярным выражением находятся все ссылки, внутри функции проверяем куда ссылается ссылка и после этого добавляем к ней атрибут rel="nofollow".

Категория: 

Share/Save