Skip to content

Instantly share code, notes, and snippets.

@AndreiTelteu
Last active January 25, 2022 22:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndreiTelteu/fff8ba6cd051aeb9cc68 to your computer and use it in GitHub Desktop.
Save AndreiTelteu/fff8ba6cd051aeb9cc68 to your computer and use it in GitHub Desktop.
Mark a word with <mark>

You can easily mark a specified word (or array of words) in a string.

<?php
function mark($pattern, $source) {
    if (is_array($pattern)) {
        $finalPatterns = array_map(function ($value) { return "/(".preg_quote($value).")(?![^<]*>|[^<>]*<\/)/i"; }, $pattern);
    } else {
        $finalPatterns = "/(".preg_quote($pattern).")(?![^<]*>|[^<>]*<\/)/i";
    }
    return preg_replace($finalPatterns, "<mark>$1</mark>", $source);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment