<?php
function highlightWords($content)
{
$arr=array("php", "and sql", "sql");
$arr = array_map(function($v){
return "/\b(" . preg_quote($v, "/") . ")\b/i";
}, $arr);
print_r($arr);
$content=preg_replace($arr, '<a href="#">$1</a>', $content, 1);
return $content;
}
echo highlightWords("This text will highlight PHP and SQL and sql but not PHPRO or MySQL or sqlite");
Array
(
[0] => /\b(php)\b/i
[1] => /\b(and sql)\b/i
[2] => /\b(sql)\b/i
)
This text will highlight <a href="#">PHP</a> <a href="#">and <a href="#">SQL</a></a> and sql but not PHPRO or MySQL or sqlite
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Array
(
[0] => /\b(php)\b/i
[1] => /\b(and sql)\b/i
[2] => /\b(sql)\b/i
)
This text will highlight <a href="#">PHP</a> <a href="#">and <a href="#">SQL</a></a> and sql but not PHPRO or MySQL or sqlite