变量一旦设定就不断保持价值

时间:2015-02-24 18:23:40

标签: 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();

    $num_of_errors = 0;
    $num_of_errors = sizeof($errors);

    if ($num_of_errors > 0){

        array_unshift($baddies, $filename);

    }

 }

然而,似乎一旦将错误放入此对象,它们会在循环的后续迭代中持续存在,并且没有错误的文件仍然会测试为正。对于好的文件,$num_of_errors仍然很高。我将它重置为零,甚至在每次循环之后都尝试unset。我想libxml_get_errors一旦设置就继续保留一个值。我该如何重置它?

1 个答案:

答案 0 :(得分:1)

我认为你应该使用libxml_clear_errors功能。根据它所说的文档here,该函数将错误存储在缓冲区中。