gpt4 book ai didi

php - 如何在运行 simplexml_load_file() 之前检查 XML 文件是否良好

转载 作者:可可西里 更新时间:2023-11-01 01:04:12 26 4
gpt4 key购买 nike

我使用 PHP 的 simplexml_load_file() 函数调用一个 API,该 API 会根据我发送的时间戳返回更改后的结果。

因此 API 将仅返回 self 的时间戳以来发生变化的结果。我遇到的问题是,如果时间戳太快并且 API 没有返回结果,那么它不会返回正确的 XML 文件,而只会返回空白页。

这会导致 simplexml_load_file 出现各种问题

这是我可以运行的简单测试...

$xml = 'http://api.rescuegroups.org/rest/?key=CZivWWGD&type=orgs&limit=300&updatedAfter=1361941202&startPage=1';

$xmlObj = new SimpleXMLElement($xml, NULL, TRUE);

这导致...

Warning: SimpleXMLElement::__construct(): http://api.rescuegroups.org/rest/?key=CZivWWGD&type=orgs&limit=300&updatedAfter=1361941202&startPage=1:1: parser error : Document is empty in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Warning: SimpleXMLElement::__construct(): in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Warning: SimpleXMLElement::__construct(): ^ in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Warning: SimpleXMLElement::__construct(): http://api.rescuegroups.org/rest/?key=CZivWWGD&type=orgs&limit=300&updatedAfter=1361941202&startPage=1:1: parser error : Start tag expected, '<' not found in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Warning: SimpleXMLElement::__construct(): in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Warning: SimpleXMLElement::__construct(): ^ in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php:9 Stack trace: #0 E:\Server\htdocs\labs\freelance\dogAPI\testorg.php(9): SimpleXMLElement->__construct('http://api.resc...', 0, true) #1 {main} thrown in E:\Server\htdocs\labs\freelance\dogAPI\testorg.php on line 9

现在,如果我向 API 传递一个时间戳,该时间戳更早于有结果的地方,那么它将返回一个完美的 XML 文档。

我正在寻找一种可能以某种方式防止这种令人讨厌的错误发生的方法?

最佳答案

simplexml_load_file :

Use libxml_use_internal_errors() to suppress all XML errors, and libxml_get_errors() to iterate over them afterwards.

Returns an object of class SimpleXMLElement with properties containing the data held within the XML document, or FALSE on failure.

因此抑制错误并检查 FALSE 以检测查询何时未按预期进行。

关于php - 如何在运行 simplexml_load_file() 之前检查 XML 文件是否良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com