变量如下所示:
$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>
我的意思是,如果其中一个'关键字'是由两个单词组成的,请在链接中添加一个“+”符号
怎么能这样做?
答案 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/>';
}
?>