2016-03-20 7 views
2

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

か、$ _POST配列内のすべてのフィールドにstrip_tags()を適用する方法は何ですか?

+0

ような名前を持ついくつかの入力が、私はこれらの変更は$フォーム= array_mapを( "strip_tags"、$ _POST)行いました。 $ form = array_map( "trim"、$ form);これは新しい質問かもしれませんが、配列のすべての空白を削除するためにarray_mapを使用することもできますか? – Kevin

答えて

5

はい、あなたは任意のPHPの作り付けの機能を使用しない場合、あなたは以下のように行うことができますarray_map()

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

私はそれを新しい変数名に出力したいと思います。 '$ _POST'自体を変更せずに残しておけば、後で混乱することがないので、より良いことです。 – Spudley

+0

これはOPが実際に望んでいるものですが、結果を新しい変数に入れることもお勧めします。 –

+0

私はこれらの変更を行った

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

これは新しい質問かもしれません。配列のすべての空白を削除するためにarray_mapを使用することはできますか? – Kevin

-1

を使用します。

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

先に述べたように、array_map()は「関数あなたです再検索する

ただし、配列値のいずれかが配列の場合、strip_tagsはその値を無効にします。キーは親配列に残りますが、そのキーの値はnullになります。これを避けるために、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); 
関連する問題