我想知道如何在使用PHP爆炸字符串时删除所有空值,例如,让用户输入",jay,john,,,bill,glenn,,,"?
在此先感谢您的帮助.
以下是爆炸用户提交的值的代码的一部分.
$tags = explode(",", $_POST['tag']);
Run Code Online (Sandbox Code Playgroud)
Vol*_*erK 84
例如,通过array_filter()或使用preg_split()上的PREG_SPLIT_NO_EMPTY选项
<?php
// only for testing purposes ...
$_POST['tag'] = ",jay,john,,,bill,glenn,,0,,";
echo "--- version 1: array_filter ----\n";
// note that this also filters "0" out, since (bool)"0" is FALSE in php
// array_filter() called with only one parameter tests each element as a boolean value
// see http://docs.php.net/language.types.type-juggling
$tags = array_filter( explode(",", $_POST['tag']) );
var_dump($tags);
echo "--- version 2: array_filter/strlen ----\n";
// this one keeps the "0" element
// array_filter() calls strlen() for each element of the array and tests the result as a boolean value
$tags = array_filter( explode(",", $_POST['tag']), 'strlen' );
var_dump($tags);
echo "--- version 3: PREG_SPLIT_NO_EMPTY ----\n";
$tags = preg_split('/,/', $_POST['tag'], -1, PREG_SPLIT_NO_EMPTY);
var_dump($tags);
Run Code Online (Sandbox Code Playgroud)
版画
--- version 1: array_filter ----
array(4) {
[1]=>
string(3) "jay"
[2]=>
string(4) "john"
[5]=>
string(4) "bill"
[6]=>
string(5) "glenn"
}
--- version 2: array_filter/strlen ----
array(5) {
[1]=>
string(3) "jay"
[2]=>
string(4) "john"
[5]=>
string(4) "bill"
[6]=>
string(5) "glenn"
[8]=>
string(1) "0"
}
--- version 3: PREG_SPLIT_NO_EMPTY ----
array(5) {
[0]=>
string(3) "jay"
[1]=>
string(4) "john"
[2]=>
string(4) "bill"
[3]=>
string(5) "glenn"
[4]=>
string(1) "0"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28785 次 |
| 最近记录: |