如何在PHP中清理stdClass

如何在PHP中清理stdClass,php,json,sanitize,Php,Json,Sanitize,我需要清理JSON文件中的值(例如,github中的composer.JSON文件)。Ijson\u decode($file)将其转换为stdClass对象。(我需要它作为一个对象,而不是一个数组——我知道这个选项) 我需要递归地清理所有可能也是对象的值(也可能是键?) 我需要从文件中删除任何和所有“危险”字符等,但希望它保持多语言,因此计划使用filter\u var($value,filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u LOW)

我需要清理JSON文件中的值(例如,github中的
composer.JSON
文件)。I
json\u decode($file)
将其转换为
stdClass
对象。(我需要它作为一个对象,而不是一个数组——我知道这个选项)

我需要递归地清理所有可能也是对象的值(也可能是键?)

我需要从文件中删除任何和所有“危险”字符等,但希望它保持多语言,因此计划使用
filter\u var($value,filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u LOW)


请给我建议和建议。也许我忽略了明显的问题,但这似乎比它应该做的更难。

对象可以通过foreach进行迭代:

函数清理($data){
foreach($data as&$value){
if(是_标量($value)){
$value=sanitizeValue($value);
持续
}
消毒($value);
}
返回$data;
}

由Маааа-М给出的答案很接近。我需要将其稍微调整为:

函数清理($data){
foreach($data as&$value){
if(是_标量($value)){
$value=sanitizeValue($value);
持续
}
$value=消毒($value);
}
返回$data;
}
当然,这并没有解决我用上面提到的
filter\u var
方法实际清理数据的问题。所以我最终解决了这个问题:

函数清理($data){
foreach($data as&$value){
if(是_标量($value)){
$value=filter\u var($value,filter\u SANITIZE\u STRING,filter\u FLAG\u STRIP\u LOW);
持续
}
$value=消毒($value);
}
返回$data;
}

消毒不是像撒盐一样撒在某些数据上的东西。你为特定的目的进行消毒。你的目标是什么?HTML?SQL?CSV?一个上下文中的危险字符在另一个上下文中是完全良性的。我将把值存储在mysql数据库中,然后用html呈现它们。