私はhtmlのソースとキーワードの配列を持っています。キーワード配列内の任意のキーワードで始まるすべての単語を検索し、リンク タグでラップしようとしています。
たとえば、キーワード array には次の 2 つの値があります[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 内のハイパーリンクを認識して無視するにはどうすればよいですか (ハイパーリンクにハイパーリンクを入れたくない)。
- このアルゴリズムは安全ですか?