特定の文字列に対して自動でリンクを作成する

<?php
//元となる文章
$str = "ウェブブラウザとはウェブサイトを閲覧するためのソフトウェアです";
  
//単語とURLのリスト
$wordlist = array(
  "ウェブ" => "http://en.wikipedia.org/wiki/Web",
  "ウェブブラウザ" => "http://en.wikipedia.org/wiki/Web_browser",
  "ウェブサイト" => "http://en.wikipedia.org/wiki/Website",
  "ソフトウェア" => "http://en.wikipedia.org/wiki/Software"
);
  
//単語の文字数が長いものから順に並べ替える
uksort($wordlist, function($a, $b){
    return mb_strlen($b, 'utf-8') - mb_strlen($a, 'utf-8'); });
 
$pairs = array();
 
foreach($wordlist as $word => $url){
    $pairs[$word] = '<a href="' . $url . '">' . $word . '</a>';
}
 
$str = strtr($str, $pairs);
echo $str;

 

<?php
$str = "JavaとJavaScriptは名前は似てるけど、違うプログラミング言語だよ";
$list = array('Java', 'JavaScript', 'プログラミング言語');
 
function cmp($a, $b)
{
	return strlen($b) - strlen($a);
}
 
usort($list, "cmp");
 
$reg = '/(';
foreach($list as $value){
	if($reg !== '/(') $reg .= '|';
	$reg .= $value;
}
$reg .= ')/';
 
$str = preg_replace($reg,'<a href="http://ja.wikipedia.org/wiki/$1">$1</a>', $str);
 
echo $str;
?>

 

参考サイト

PHP ARCHIVE
[PHP]文章中の単語に自動でリンクを貼る(キーワードリンク)
http://php-archive.net/php/auto-link/
while(isプログラマ)
PHPで自動キーワードリンク
http://am-yu.net/2012/03/19/auto_keyword_link_php/