使用`str_replace`创建一个链接

时间:2011-07-07 12:30:13

标签: php str-replace

我需要一些帮助。我有一个显示关键字“tags”的部分:

<?=str_replace(",",",",$line["m_tags"])?>

上面的代码如下所示

  

标签:KEYWORD1,KEYWORD2,KEYWORD3

我要做的就是让每个人KEYWORD成为链接回主页的超链接。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

您发布的代码不执行任何操作,它会将,替换为,。 您可以使用正则表达式执行此操作,但这是一种不同的方法:

$output = '';
$tmp    = explode(",",$line['m_tags']); /* convert to array */

foreach($tmp as $tag)
    $output .= '<a href="index.php">'.$tag.'</a>, '; /* put link in output */

echo substr($output,0,-2); /* echo output without the last , */

Felix Kling指出的更短的选择:

$tmp    = explode(",",$line['m_tags']); /* convert to array */

foreach($tmp as $key => $tag)
    $tmp[$key] = '<a href="index.php">'.$tag.'</a>'; /* put link back in tmp */

echo implode(",",$tmp);

答案 1 :(得分:1)

要么这应该有效:

Tags: <? 
// php5.3
$tags=explode(",", $line["m_tags"]);
$tags = array_map(function($tag){
  return "<a href='http://www.yoursite.com/?tag=$tag'>$tag</a>";
}, $tags);
echo implode(", ", $tags);
?>

答案 2 :(得分:0)

我可能会这样做。

$str = "KEYWORD1,KEYWORD2,KEYWORD3";
$keywords = explode(',', $str);
$links = array();
foreach($keywords as $keyword) {
    $links[] = "<a href='home'>$keyword</a>";
}

echo implode(', ', $links);