2014-12-05 139 views
0

当我用xsd验证我的xml文件并使用多个验证工具时,它们都返回肯定结果:验证成功。php-xml验证xsd

但是当在schema中使用schemaValidate时,验证将在60秒后正好显示空白页。我试图找到一些这方面的解释:

$doc = new DOMDocument(); 

$doc->load('C:\a\xml.xml'); 


try{ 

    $is_valid_xml = $doc->schemaValidate('http://xxxxxxx/schema.xsd'); 

    if ($is_valid_xml == true) { 
     echo 'ok'; 
     }else { 
     throw new Exception('Validation not successful!'); 
    } 

    }catch (Exception $e) { 
    echo 'Caught exception: ', $e->getMessage(), "<br />"; 

    } finally { 
    print_r(error_get_last()); 
} 

当我用上面的方法对其他一些通用的XML + XSD例如它工作正常。如果我刻意搞砸这个XML,我会得到结果“被捕获的异常:验证不成功!”和一些错误信息,但与我真正的XML + XSD文件(这是更复杂),我得到空白页。

任何想法为什么会发生这种情况?这确切的60秒似乎有些会话超时或类似的东西,但我已经在php.ini中查找它设置为1440秒(session.gc_maxlifetime = 1440)...

+1

欢迎来到Stack Overflow。在[SO帮助文件](http://stackoverflow.com/help/how-to-ask)以及Eric Raymond和Rick Moen的文章[如何以智能的方式提问]中提供有效问题的建议很好( http://catb.org/~esr/faqs/smart-questions.html)。如果您提供[最小完整可验证示例](http://stackoverflow.com/help/mcve),您会得到更好的回复。在将真实的XML和XSD缩减为展现问题行为的最小示例时,您可能会发现问题并且不再需要提出问题 - 这只是您必须承担的风险。 – 2014-12-05 15:42:38

+0

嗨tnx的说明。我找到了解决方案。问题出现在php.ini >>> max_execution_time = 30 – Mario 2014-12-08 16:05:14

回答

0

我找到了解决方案。问题出在php.ini >>> max_execution_time = 30