2016-07-06 40 views
1

我創建一個函數,在將數據發送到視圖之前「清除」數據(轉義html以避免xss)。所有數據都以1個數組傳遞。該數組包含包含其他變量和數組的變量和數組,等等。如何循環htmlspecialchars數組中的數組在

這就是我現在的工作,但它看起來不正確。有沒有辦法避免通過一個新的數組中的每個數組?

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); 
      } 
      } 
     } 
     } 
    } 
    } 
} 

感謝Antoine,我得到了一個新的功能。建議仍然歡迎露面!

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

回答