2


0

PHPユーザーがデータの問題を入力しましたか?

ユーザーがデータベースにタグを入力すると、HTML要素を削除し、コンマを使用してタグを分離しますが、何らかの理由でhtmlタグを削除すると、空の値が他のタグとともにデータベースに送信されますユーザーは次のデータを入力します。

,tag2,tag3,tag4 //an empty value is entered
,tag2,tag3,tag4 //this will also enter an empty value

htmlタグは削除されますが、空の値がデータベースに送信されます。これを防ぐにはどうすればよいですか?

これは私のコードのこの部分と関係があると思います。

$tags = explode(",", $_POST['tag']);

5 Answer


4


Try

array_filter( //remove elements that evaluate to FALSE (includes empty ones)
    array_map('trim', //trim space around tags
        array_map('strip_tags', //remove html tags from the... tags
            explode(",", $_POST['tag'])))); //separate on comma


0


PHP配列の空の要素を削除する関数へのリンクは次のとおりです。http://www.bitrepository.com/remove-empty-values-from-an-array-in-php.html


0


これにより、空のタグが削除されます。

$tags = explode(",", $_POST['tag']);
$new_set  = array();

foreach ($tags as $tag){

  if ($tag == ''){

    $new_set[] = $tag;
  }
}

$tags = implode(',', $new);

// now store $tags into your database.


0


すべての空の配列要素を削除します。

 foreach($tags as $key => $tag) {
   if (empty($tag)) unset($tags[$key]);
 }


0


走れば

explode(",", ",apple,pear,banana");

次のような配列を取得します。

array('', 'apple', 'pear', 'banana');

explode()関数は、コンマがある場所で文字列を分割します。 コンマは3つあります。つまり、文字列は4つに分割されます。 入力文字列の最初のコンマの前には何もないため、最初の結果が空の文字列になることを意味します。

これが必要ない場合は、explode()の結果から空の文字列を除外する必要があります。 これにはarray_filter()を使用できます。

array_filter(explode(",", ",apple,pear,banana"));