2016-05-20 8 views
0

引用符で囲まれた文字列を区切ることが可能かどうか疑問に思っていました。本文を引用符で囲みますか?

アイテムにタグを付けるjQuery Pluginを使用したいと思いますが、複数のタグがありますが、ユーザーがすべての可能性を知ることはないため、データベースの多対多の関係は機能しません。使用可能な専門用語が数多くあります。

私は別々のテーブルを使用しても構いませんが、重複している可能性があります。テーブルの1つの文字列に格納したいと思います。

だから、このようなテキスト区切ることも可能である:配列に

"Tag 1" "Tag 2" "Tag 3" 

を、ループこれらのPHP foreachループでは、私はこれらをエコーすることができますか?

+0

例文を出力しましたか? –

+0

@IvanBarayevデータベースでは、文字列全体が "Tag 1" "Tag 2" "Tag 3"のようになり、foreachでエコーすることができるように各 "Tag 1"を配列に取得したい(配列(1,2,3,4)) – PublicDisplayName

+0

@PublicDisplayName:すべてのタグを「タグ1」「タグ2」「タグ3」「タグ4」として保存することを意味しますか? ""をデータベースの単一の文字列と単一のレコードに入れてから取り出し、配列内の各タグを取得できるようにしたいのですか? –

答えて

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

0

explodetrimの組み合わせを試してみてください。

$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と指定し、の包括引用符を削除します。
  • トリミングされた要素をアレイに戻して保存します(後で使用するため)。
0

がWell..Hereは、あなたがそれを行うことができます正確にどのようにある:

前編:へタグを取得し、データベースに保存できるようにします。 YOUR jQuery TextExt PLUGINを使用して

注:お使いのプラグインとしてがarray.soデータベース内のものは最初にあなたはJSON配列を解読する必要があります保存するためにJSONでtagsを保存し、

<?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>"; 
?> 

OUTPUT:

あなたは、あなたのデータベースに保存することができます
Array 
(
    [0] => javascript 
    [1] => php 
    [2] => jquery 
    [3] => json 
    [4] => html 
    [5] => css 
) 

2番目の部分:データベースからタグを取得して、配列内のタグを取得できるようにする。

ARRAYでそれらを取得し、データベースからタグをフェッチし:

注:

<?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>"; 
?> 

OUTPUT:あなたは、データベースから文字列内のタグを取得するようにように

Array 
(
    [0] => Tag 1 
    [1] => Tag 2 
    [2] => Tag 3 
    [3] => Tag 4 
) 
関連する問題