PHP 用链接分隔逗号列表

标签 php mysql list replace

我有一个名为“tags”的 MySQL 字段作为示例结果。单个字段有一个以逗号分隔值的文本列表。

一个真实的例子:

红色,裤子,鞋子,高跟鞋,lookbook

我想以某种方式使用查找和替换或内爆功能将这一行作为单独的链接打印出来。

到目前为止我的猜测:

<?php
$tag=$row["tags"];
whilst (!$tag=="") { 
echo '<a href="/tags/$tag">$tag</a>, "';
}
?>

最佳答案

  1. 使用 explode() 将逗号分隔的列表拆分为数组
  2. 使用 foreach 将列表中的每个元素转换为链接
  3. 使用 implode() 将数组转换为逗号分隔的列表

例子:

$tags = explode(", ", $row["tags"]);
foreach ($tags as &$tag) {
    $tag = "<a href=\"/tags/$tag\">$tag</a>";
}
echo implode(", ", $tags);

另一种方法是使用 preg_replace:

$row['tags'] = "banana, apple, peach, strawberry";
echo preg_replace( '#([^,\s]+)#is', 
       '<a href="/tags/$1">$1</a>', 
       $row['tags']); 

关于PHP 用链接分隔逗号列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242253/

相关文章:

php - 检查我的数据库中是否已存在用户名和电子邮件

php - 尽管查询正确,ElasticSearch没有返回任何结果

java - 返回用户最近进行的交易

mysql - ORDER BY 和 GROUP BY 的正确顺序是什么

list - 追加到列表 F# 的开头

c# - 为什么 List<T> 不显式实现 IReadOnlyList<T>?

php - mysql 将关联提取到列中

php - 如何捕获在 CakePHP 页面中运行的 SQL 查询?

php - 通过 PHP 添加 MySQL 帐户

python - 嵌套列表到列表