PHP:将html_entity_decode应用于整个结果数组

时间:2015-12-16 11:41:10

标签: php mysql pdo

为了安全起见,使用'html_sanitizer'清理插入MySQL数据库的所有数据。

使用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'])

非常感谢任何建议。

1 个答案:

答案 0 :(得分: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是文档的参考链接。