我有一个 html 源和一组关键字。我正在尝试查找以关键字数组中的任何关键字开头的所有单词并将其包装在链接标记中。
例如,关键字数组有两个值:[ABC, DEF]
. 它应该匹配ABCDEF
,DEFAD
等,并用超链接标记包装每个单词。
这是我到目前为止的代码:
$_keys = array('ABC', 'DEF');
$text = 'Some ABCDD <strong>HTML</strong> text. DEF';
function search_and_replace(($key,$text)
{
$words = preg_split('/\s+/', trim($text)); //to seprate words in $_text
for($words as $word)
{
if(strpos($word,$key) !== false)
{
if($word.startswith($key))
{
str_replace($word,'<a href="">'.$word.'</a>,$_text);
}
}
}
return text;
}
for($_keys as $_key)
{
$text = search_and_replace($key,$text);
}
我的问题:
- 这个算法会起作用吗?
- 我将如何修改它以使用 UTF-8?
- 如何识别 html 中的超链接并忽略它们(不想在超链接中放置超链接)。
- 这个算法安全吗?