2016-07-06 7 views
1

私はビューにデータを送る前にデータを "消去して"(xssを避けるためにHTMLをエスケープする)関数を作成しています。すべてのデータは1つの配列に渡されます。この配列には、他の変数や配列などを含む変数と配列が含まれています。配列の配列のhtmlspecialcharsを配列に配列する方法

これは私の今のものですが、動作しますが、正しくは見えません。配列内のすべての配列に対して新しいforeachを使用することを避ける方法はありますか?

public function clean_output(&$data) 
{ 
    if(!is_array($data)) 
    { 
    $data = htmlspecialchars($data); 
    } 
    else 
    { 
    foreach($data as &$data_1) 
    { 
     if(!is_array($data_1)) 
     { 
     $data_1 = htmlspecialchars($data_1); 
     } 
     else 
     { 
     foreach($data_1 as &$data_2) 
     { 
      if(!is_array($data_2)) 
      { 
      $data_2 = htmlspecialchars($data_2); 
      } 
      else 
      { 
      foreach($data_2 as &$data_3) 
      { 
       $data_3 = htmlspecialchars($data_3); 
      } 
      } 
     } 
     } 
    } 
    } 
} 

アントワンのおかげで、私は新しい機能を得ました。提案はまだオフコースを歓迎する!

public function clean_output(&$data) 
    { 
     if(!is_array($data)) 
     { 
     $data = htmlspecialchars($data); 
     } 
     else 
     { 
     foreach($data as &$data_1) 
     { 
      $this->clean_output($data_1); 
     } 
     } 
    } 

答えて