PHP用户输入数据问题?

PHP用户输入数据问题?,php,Php,好的,当用户在数据库中输入标记时,我会使用逗号去掉HTML元素和单独的标记,但由于某种原因,当我去掉HTML标记时,会将空值与其他标记一起提交到数据库中,例如,如果用户输入以下数据 <html>,tag2,tag3,tag4 //an empty value is entered ,tag2,tag3,tag4 //this will also enter an empty value 下面是一个指向一个函数的链接,该函数将删除PHP数组中的空元素: 试试看 array_filte

好的,当用户在数据库中输入标记时,我会使用逗号去掉HTML元素和单独的标记,但由于某种原因,当我去掉HTML标记时,会将空值与其他标记一起提交到数据库中,例如,如果用户输入以下数据

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

下面是一个指向一个函数的链接,该函数将删除PHP数组中的空元素: 试试看

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

这将删除空白标签:

$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.

将删除所有空数组元素

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

explode(",", ",apple,pear,banana");
您将得到如下数组:

array('', 'apple', 'pear', 'banana');
函数的作用是:在有逗号的地方拆分字符串。有三个逗号,这意味着它将把字符串拆分为四个。因为在输入字符串的第一个逗号之前没有任何内容,这意味着第一个结果将是一个空字符串

如果不希望这样,则需要从explode()的结果中过滤掉所有空字符串。您可以使用array_filter()执行以下操作:

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

这里有一些错误<代码>$new将为空。如果值等于空字符串,则添加数组成员。如何剥离HTML?
$tag=mysqli\u real\u escape\u字符串($mysqli,trim(剥离标签($purizer->purify($\u POST['tag')))聪明的巢穴+1,但对于初学者来说,这可能会让人困惑。这会去掉我的标记,但仍然输入一个空值:(@alex你的意思是像“0”?因为这是唯一的一个。无论如何,如果他想要“0”,他可以指定一个回调到
array\u filter
。是的,对不起,我很快意识到了这一点并删除了注释。
array_filter(explode(",", ",apple,pear,banana"));