【问题标题】:Can I run $_POST array through a strip_tags() loop PHP我可以通过 strip_tags() 循环 PHP 运行 $_POST 数组吗
【发布时间】:2016-03-20 08:05:02
【问题描述】:

我可以通过循环运行 $_POST 数组以获得与以下代码相同的结果吗?

$_POST['manufacturer'] = strip_tags($_POST['manufacturer']);<br>
$_POST['part_no']      = strip_tags($_POST['part_no']);<br>
$_POST['product_name'] = strip_tags($_POST['product_name']);<br>
$_POST['link']         = strip_tags($_POST['link']);<br>

或者有没有办法将 strip_tags() 应用于 $_POST 数组中的每个字段?

【问题讨论】:

  • 我做了这些改变 $form = array_map("strip_tags", $_POST); $form = array_map("trim", $form);这可能是一个新问题,我可以使用 array_map 来删除数组中的所有空格吗?如果可以,我将如何编写。

标签: php arrays post


【解决方案1】:

是的,使用array_map()

$_POST = array_map("strip_tags", $_POST);

【讨论】:

  • 我希望将它输出到一个新的变量名。最好不要更改 $_POST 本身,因为这样可以避免以后出现任何混淆。
  • 这是 OP 实际上想要的,但是,是的,我也建议将结果放入一个新变量中。
  • 我做了这些改变

    $form = array_map("strip_tags", $_POST);
    $form = array_map("trim", $form);

    这可能是一个新问题,我可以使用 array_map 来删除数组中的所有空格吗?如果可以,我将如何写。
  • 是的,你可以这样写(确保将php代码放在php标签&lt;?php ?&gt;之间)。你也可以像这样嵌套它们$form = array_map("trim", array_map("strip_tags", $_POST));
  • 请注意,如果您的数组包含一个值为数组的元素,这将保留该元素的键在数组中,但使其值为空
【解决方案2】:

如前所述,array_map() 是您要查找的函数

但是,请注意,如果您的数组值之一本身就是一个数组,strip_tags 将使该值无效。键将保留在父数组中,但该键的值将为空。这是我用来代替 array_map 的函数来避免这种情况。一个可能的用途是,如果您的 $_POST 中有 html 输入字段数组。例如,名称为 name="hello[]" 的多个输入

function strip_tags_array($array){
    $result=array();
    if(is_array($array)){
        foreach($array as $key=>$value){
            if(is_array($value)){
                $result[$key]=strip_tags_array($value);
            }
            else if(is_string($value)){
                $result[$key]=strip_tags($value);
            }
            else{
                $result[$key]=$value;
            }
        }
    }
    return $result;
}

$_POST = strip_tags_array($_POST);

【讨论】:

    【解决方案3】:

    无法让任何示例在我的服务器上运行。你们在测试解决方案吗? 这对我有用:

    // no code $allowcode=""; // put allowed code tags here foreach ($_POST as $key => $value) { $$key=strip_tags($value, $allowcode); } foreach ($_GET as $key => $value) { $$key=strip_tags($value, $allowcode); }

    【讨论】:

      【解决方案4】:

      如果你不想使用任何 PHP 内置函数,你可以这样做:

          foreach($_POST AS $key=>$val)
          {
            $_POST[$key] = strip_tags($val);
          }
      

      【讨论】:

        猜你喜欢
        • 2012-09-14
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 2016-02-02
        • 2011-04-03
        • 2016-06-19
        相关资源
        最近更新 更多