Используйте `str_replace` для создания ссылки

Мне нужна помощь. У меня есть раздел, который отображает ключевые слова "теги":

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

Код выше выглядит следующим образом

Теги: KEYWORD1, KEYWORD2, KEYWORD3

Все, что я пытаюсь сделать, это иметь каждого человека KEYWORD быть гиперссылкой для ссылки на главную страницу. Любая помощь будет оценена.

3 ответа

Решение

Код, который вы разместили, ничего не делает, он заменяет , с ,, Вы можете сделать это с помощью регулярных выражений, но здесь есть другой метод:

$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 , */

Короткая альтернатива, как отметил Феликс Клинг:

$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);

Либо это должно работать:

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);
?>

Вот как я, вероятно, сделал бы это.

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

echo implode(', ', $links);
Другие вопросы по тегам