1

我想为段落中的单词创建超链接。

例如,如果"Jim Carrey"数组中的名称与字符串中的单词匹配,那么 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 回答