我想知道是否可以分隔引号内的字符串。
我想使用jQuery Plugin在项目上创建标签,但是会有多个标签,我不会知道用户的所有可能性,因此数据库中的多对多关系不会工作,因为有许多专业术语可以使用。
我不介意使用单独的表,但是可能有很多重复项,我宁愿将它存储在表中的一个字符串中。
所以可以分开这样的文字:
"Tag 1" "Tag 2" "Tag 3"
进入一个数组,然后在PHP foreach
循环中循环它们,这样我就可以回应它们了吗?
答案 0 :(得分:1)
我将CSV解析器与自定义机箱和分隔符(例如空格和双引号)一起使用。
$string = '"Tag 1" "Tag 2" "Tag 3" "Tag 4"';
print_r(str_getcsv($string, ' ', '"'));
输出:
Array
(
[0] => Tag 1
[1] => Tag 2
[2] => Tag 3
[3] => Tag 4
)
手动:http://php.net/manual/en/function.str-getcsv.php
演示:https://eval.in/574590
答案 1 :(得分:0)
$str = '"Tag 1" "Tag 2" "Tag 3"';
$arr = explode(' ', $str);
foreach ( $arr as $key => $val ) {
$arr[$key] = trim($val, '"');
echo $val . PHP_EOL;
}
这基本上如下:
$str
转换为数组(删除分隔符)。$val
并删除。答案 2 :(得分:0)
嗯......这正是你能做到的:
第一部分:要获取标记,然后将其保存在数据库中。
使用您的jQuery TextExt插件:
注意:由于您的插件将tags
保存在json array.so中以便首先保存数据库中的那些,您需要解码json数组然后才能保存它在您的数据库中:
<?php
//Assuming Your Tags JSON Array As
$tags = '["javascript","php","jquery","json","html","css"]';
$tags_array = json_decode($tags);
echo "<pre>";
print_r($tags_array);
echo "</pre>";
?>
输出:
Array
(
[0] => javascript
[1] => php
[2] => jquery
[3] => json
[4] => html
[5] => css
)
第二部分:能够从数据库中获取标记并能够获取数组中的标记。
从数据库中获取标记,然后在阵列中获取这些标记:
注意:因为您将从数据库中获取字符串,因此:
<?php
//Assuming that you fetched your tags in a an array from your database
//But here I am going forward with a string just
$tags = '"Tag 1" "Tag 2" "Tag 3" "Tag 4"';
echo "<pre>";
print_r(str_getcsv($tags, ' ', '"'));
echo "</pre>";
?>
输出:
Array
(
[0] => Tag 1
[1] => Tag 2
[2] => Tag 3
[3] => Tag 4
)