PHP:我如何从变量创建链接?

时间:2011-06-28 19:38:40

标签: php variables

变量如下所示:

$keywords = 'key1, key2, key3, key4';

我如何创建如下链接:

<a href="../tag/key1">key1</a>, <a href="../tag/key2">key2</a>, <a href="../tag/key3">key3</a>, <a href="../tag/key4">key4</a>

使用php?


//已编辑

如果使用

定义$,该怎么办?
$keywords = 'key1, keyword two, key3, key four';

甚至其他订单?

<a href="../tag/key1">key1</a>, <a href="../tag/keyword+two">keyword two</a>, <a href="../tag/key3">key3</a>, <a href="../tag/key+four">key four</a>

我的意思是,如果其中一个'关键字'是由两个单词组成的,请在链接中添加一个“+”符号

怎么能这样做?

6 个答案:

答案 0 :(得分:6)

试试这个:

foreach(explode(', ',$keywords) as $value){
    echo "<a href='../tag/$value'>$value</a>";
}

用逗号表示:

$keyArray = explode(', ',$keywords);
$keyLength = count($keyArray);
foreach($keyArray as $key=>$value){
    echo "<a href='../tag/$value'>$value</a>";
    if($key < ($keyLength - 1)){
          echo ", ";
    }
}

更新至OP

$keyArray = explode(', ',$keywords);
$keyLength = count($keyArray);
foreach($keyArray as $key=>$value){
    echo "<a href='../tag/";
    $vArr = explode(' ', $value);
    $vLength = count($vArr);
    foreach($vArr as $kv=>$v){
         echo $v;
         if($kv < ($vLength - 1))  echo "+";
    }
    echo "'>$value</a>";
    if($key < ($keyLength - 1)){
          echo ", ";
    }
}

答案 1 :(得分:3)

你要做的第一件事就是爆炸那个字符串。

$links = explode(',', $keywords);

然后你要循环它......

for($counter = 0; $counter < sizeof($links); $counter++) {
    if($counter > 0) {
        echo ", ";
    }
    echo "<a href='../tag/".str_replace(' ', '+', trim($link[$counter]))."'>{$link[$counter]}</a>";
}

答案 2 :(得分:2)

以下内容已更新至您的新要求:

function keyword_url($arr)
{
    return sprintf('%s<a href="../tag/%s">%s</a>', $arr[1], urlencode($arr[2]), $arr[2]);
}

$keywords = 'key1, key2 piece, key3, key4';
echo preg_replace_callback('/((?:^)|(?:, *))([\w ]+)/', 'keyword_url', $keywords);

答案 3 :(得分:1)

 <?php  $keyword = explode(',',$keywords); ?> 
 <a href="../tag/<?php echo $keyword[0]; ?>">key1</a>
 <a href="../tag/<?php echo $keyword[2]; ?>">key3</a>

答案 4 :(得分:1)

首先使用explode()将关键字字符串拆分为数组

从那里可以通过多种方式将数组转换为字符串序列或数组。你甚至可以使用implode将一串链接字符串带回一个字符串。

答案 5 :(得分:1)

<?php

$keywords = 'key1, key2, key3, key4';

$vars = explode(',',$keywords);
foreach($vars as $key => $value)
{
    echo '<a href="'.$value.'" title="' . $value . '">'.$value.'</a><br/>';
}
?>