从逗号分隔列表中选择

时间:2011-07-11 00:28:17

标签: php

所以我正在开发一个标签系统,我有一个看起来像这样的字段:

<input name="tags" type="text" />

我希望用户能够键入标签(逗号分隔):“标记一,标记二,标记三”等等,然后在后端PHP中,自行拉出每个标记并将它们全部放入进入数组,例如:

$tags = array("Tag one", "Tag two", "Tag three");

然后我想用foreach将它们插入数据库中自己的行中,我知道该怎么做以及所有这些行;但是我离题了。但是,如何将字符串中的标记与用户的表单输入分开?

5 个答案:

答案 0 :(得分:6)

您可以使用explode function

执行此操作
$tags = explode(',',$_POST['tags']);

答案 1 :(得分:2)

$tags= explode(",", $input_from_tag_form);

查看更多信息here

答案 2 :(得分:1)

这实际上非常简单,你只需要使用explode函数,因为这里的许多人都指出PHP Offical Documentation你可以找到关于如何使用这个函数的很好的例子

一般情况下,你可以使用任何表达式(逗号,冒号,短划线或任何你能想到的)进行拆分。

<?php
$datas = '1213456|Joe|Fake st 405|50678983942|joe@fake.com';

$data_array = explode('|', $datas);

echo "$data_array[0], $data_array[1], $data_array[2], $data_array[3], $data_array[4]";

?>

答案 3 :(得分:0)

您可以使用explode()。它接受分隔的键,并返回一个数组。

答案 4 :(得分:0)

如果submmited url(我假设GET用于此目的)看起来像:
yoursite.com?save_tags=abba,music,1970

代码看起来像(注意,这不是完整的逻辑):

$tags_sql="('" . explode('),(',$_GET['save_tags']) . "')";//this happens after you sanitize input, or just use PDO/MySQLi params to insert the data...google it
$sql = "INSERT INTO tags_table VALUEs {$tags_sql} ON UPDATE SET usage=usage+1";

这假定标签表包含3个字段,id(pk)| tag_name(唯一)|用法(默认为1)