2015-12-16 52 views
0

,插入到我的MySQL數據庫中的所有數據都用'html_sanitizer'清除。PHP:爲了安全性,將html_entity_decode應用於整個結果數組

數據使用PDO檢索:

$statement = $dbconn->prepare("SELECT * from table"); 
$result = $statement->fetchAll(PDO::FETCH_ASSOC); 

正確顯示網頁上的文字我用這個:

echo(html_entity_decode($result[0]['content'], ENT_COMPAT, 'UTF-8')) 

這一切工作正常。

我的問題是,將'html_entity_decode'應用於數組的所有內容的最佳方式是什麼?

我希望這樣的事情:

$statement = $dbconn->prepare("SELECT * from table"); 
$result = $statement->fetchAll(PDO::FETCH_ASSOC); 
$result = html_entity_decode($result, ENT_COMPAT, 'UTF-8'); // here is the bit i'm looking for 
echo ($result[0]['content']) 

提前任何建議非常感謝。

+0

你可以使用'array_map'功能 –

回答

1

看來你想在數組的每個字段中應用html_entity_decode()如果是的話array_walk_recursive()最適合這個目的。

Example: 
$result = array(); // Say Array of your result 
array_walk_recursive($result , 'stripFunction'); 

public function stripFunction(&$item, $key) 
{ 
    $item = html_entity_decode($item, ENT_COMPAT, 'UTF-8'); 
} 

它遞歸地將一個用戶函數應用於數組的每個成員。 http://php.net/manual/en/function.array-walk-recursive.php是文檔的參考鏈接。

+0

完美,正是我之後......感謝! – Dog