你可以修剪所有$ _POST变量吗?因为我现在有一个非常长的列表来修剪每个var。看起来很不专业。我想修剪($ _ POST);可能会工作,但它没有:]
答案 0 :(得分:26)
您可以使用array_map
执行此操作:
$_POST = array_map('trim', $_POST);
答案 1 :(得分:23)
适用于多维数组
array_walk_recursive($_POST, function (&$val)
{
$val = trim($val);
});
答案 2 :(得分:10)
foreach($_POST as &$p) $p = trim($p);
答案 3 :(得分:3)
快速而简单:
foreach($_POST as $key => $val)
{
$_POST[$key] = trim($val);
}
答案 4 :(得分:2)
最简单,最干净(在我看来)是使用内置的array_map函数:
array_map('trim', $_POST);
您也可以通过将数组作为第一个回调参数传递给您自己的方法,如下所示:
array_map(array('My_Class', 'staticMethod'), $_POST); // Invoke a static method
array_map(array($myObject, 'objectMethod'), $_POST);
// Invoke $myObject->objectMethod for each element of $_POST
根据以下评论进行更新
有时$ _POST数组可能包含数组。如果您想要修剪这些数组的内容,PHP manual user notes中还有许多array_map_recursive
的自定义实现。去那里为自己选择一个。如果您不喜欢自定义实现,array_walk_recursive
对您来说也是一个不错的选择。
答案 5 :(得分:1)
您可以使用array_walk()
执行此操作。
答案 6 :(得分:0)
使用recursive
功能,您可以这样做。
<强> PHP 强>
// Static $_POST Array.
$_POST['1']='one ';
$_POST['2']=' two';
$_POST['3'][]=' three ';
$_POST['4'][][]=' four';
$_POST['5'][0][1][3]='five ';
// Recursive function for trim data.
function trim_recursive($array){
$return = array();
foreach($array as $key=>$values){
if(is_array($values)===true){
$return[$key] = trim_recursive($values);
}
else{
$return[$key] = trim($values);
}
}
return $return;
}
// Usage.
$_POST = trim_recursive($_POST);
<强>输出强>
// Output before trim.
array(5) {
[1]=>
string(4) "one "
[2]=>
string(4) " two"
[3]=>
array(1) {
[0]=>
string(9) " three "
}
[4]=>
array(1) {
[0]=>
array(1) {
[0]=>
string(5) " four"
}
}
[5]=>
array(1) {
[0]=>
array(1) {
[1]=>
array(1) {
[3]=>
string(5) "five "
}
}
}
}
// Output after trim.
array(5) {
[1]=>
string(3) "one"
[2]=>
string(3) "two"
[3]=>
array(1) {
[0]=>
string(5) "three"
}
[4]=>
array(1) {
[0]=>
array(1) {
[0]=>
string(4) "four"
}
}
[5]=>
array(1) {
[0]=>
array(1) {
[1]=>
array(1) {
[3]=>
string(4) "five"
}
}
}
}