我使用 CURL 和代理来获取一些 xml 文件,有时当我尝试加载/使用 xml (simplexml_load_string) 时,只有部分 XML 文档会通过并失败。
我想像..
if(curl_errno($ch))
{
$error = curl_error($ch);
// handle error
}
会通过 CURL errno 捕获这种错误。
CURLE_PARTIAL_FILE (18)
文件传输较短或较大
比预期的。当
服务器首先报告一个预期的
传输大小,然后传送数据
与之前的不匹配
给定尺寸。
但是,这不起作用,我认为这可能是由于使用代理所致。我还能检查什么吗?我现在唯一的想法是对 XML 文档的最后一位进行 preg_match,但这似乎不太理想,因为我正在获取多种类型的 XML 文档,而且我必须为每种类型编写检查。
我在使用代理时遇到了同样的问题,但无法使用 cURL 的错误处理程序解决该问题。如果您有权访问两个脚本(请求的脚本和传递 XML 的脚本),请让请求的脚本传递一个它期望在 XML 末尾出现的唯一代码:
// Request
http://localhost/getxml.php?id=4&uniq=1337
并在输出末尾添加注释:
<?xml encoding="..." ..?>
...
<!--1337-->
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)