好的当用户在数据库中输入标签时,我使用逗号删除HTML元素和单独的标签,但出于某种原因,当我删除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']);
答案 0 :(得分:4)
尝试
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
答案 1 :(得分:0)
这是一个删除PHP数组中空元素的函数的链接: http://www.bitrepository.com/remove-empty-values-from-an-array-in-php.html
答案 2 :(得分: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.
答案 3 :(得分:0)
将删除所有空数组元素。
foreach($tags as $key => $tag) {
if (empty($tag)) unset($tags[$key]);
}
答案 4 :(得分:0)
如果你跑
explode(",", ",apple,pear,banana");
你会得到一个像这样的数组:
array('', 'apple', 'pear', 'banana');
explode()函数在有逗号的情况下拆分字符串。有三个逗号,这意味着它会将字符串拆分为四个。因为在输入字符串中的第一个逗号之前没有任何内容,这意味着第一个结果将是一个空字符串。
如果您不想这样,则需要从explode()的结果中过滤掉任何空字符串。您可以使用array_filter():
array_filter(explode(",", ",apple,pear,banana"));