Php 一经设置,变量值始终保持不变
我正在一个目录中循环,试图找到有错误的XML文件Php 一经设置,变量值始终保持不变,php,xml,loops,Php,Xml,Loops,我正在一个目录中循环,试图找到有错误的XML文件 $baddies = array(); foreach (glob("fonts/*.svg") as $filename) { libxml_use_internal_errors(true); $str = file_get_contents($filename); $sxe = simplexml_load_string($str); $errors = libxml_get_errors();
$baddies = array();
foreach (glob("fonts/*.svg") as $filename) {
libxml_use_internal_errors(true);
$str = file_get_contents($filename);
$sxe = simplexml_load_string($str);
$errors = libxml_get_errors();
$num_of_errors = 0;
$num_of_errors = sizeof($errors);
if ($num_of_errors > 0){
array_unshift($baddies, $filename);
}
}
然而,似乎一旦错误被放入这个对象中,它们就会在循环的后续迭代中持续存在,并且没有错误的文件仍然测试为阳性<代码>$num\u错误对于好文件来说仍然很高。我将它重置为零,甚至在每次循环后都尝试取消设置它。我假设
libxml\u get\u errors
在设置后继续保留一个值。如何重置它?我认为您应该使用libxml\u clear\u errors
函数。根据文档说明,该函数将错误存储在缓冲区中。您是否尝试过libxml\u clear\u errors()
?不,我不知道它存在。这很有效。太好了,谢谢你。