1

段落内の単語へのハイパーリンクを作成したいと思います。

たとえば"Jim Carrey"、配列内の名前が文字列内の単語と一致する場合、ジム キャリーの名前は のハイパーリンクにあるはずです"www.domian.net/name(Jim Carrey)""mask"配列内の単語が文字列内の単語と一致する場合、次のような対応する URL に置き換える必要があります"www.domian.net/mask"

<?php 

$string="Jim Carrey found the new Mask";

$array=array("Jim Carrey","mask");

echo preg_replace( '/\b('.implode( '|', $array ).')\b/i', '<a href=" ">$1</a>', $string  );

?>
4

2 に答える 2

1

選択したテキストの周りにリンクを配置する方法については正しい考えをお持ちのようですが、href. 必要なパラメーターを指定して URL を入力するだけなので、これは残念です。

ただし、両方の回で同じことを望んでいないため、少し複雑になります (一方には文字通りの単語が必要ですname(WORD)が、もう一方には必要です)。これを試すことができます:

$array = array("Jim Carrey"=>"name(Jim Carrey)","mask"=>"mask");
echo preg_replace_callback("/\b".implode("|",array_keys($array))."\b/i",
   function($m) use ($array) {
       return "<a href=\"http://domain.net/".$array[$m]."\">".$m."</a>";
   },$string);
于 2012-12-12T06:52:09.870 に答える
0
<?php

$string="Jim Carrey found the new Mask";

$arr=array("Jim Carrey","Mask");

foreach($arr as $val)
    $string = str_replace($val, '<a href="http://domain.com/' . $val . '">' . $val . '</a>', $string);

echo $string;
?>
于 2012-12-12T06:52:01.653 に答える