使用带有php XML函数的CURL输出来处理大型数据馈送

时间:2013-03-20 17:51:50

标签: php xml xmlreader

我有一个受密码保护的Feed。以下是用于访问Feed的代码

$url = 'http://thefeedwebsite.com/feed.php';

$data = array("username" => ‘user’, "password" => ‘password’, "location" => "HK")
$ch = curl_init($url);

);

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);


$output = curl_exec($ch);

curl_close($ch);

问题在于,由于输出大约100个结果后的大尺寸,它会保持超时。我已经在我的php.ini中设置了时间限制,因为有些线程建议但仍然是同样的问题。我认为这是因为CURL将完整的Feed加载到内存中。

是否可以将$output直接加载到php中的XMLReader(),以便我可以更快地通过阅读器处理Feed?

抱歉,这个问题完全是菜鸟。刚开始用xml学习php

2 个答案:

答案 0 :(得分:2)

这个主题可以帮助你(流式传输cURL和播放内存):

Manipulate a string that is 30 million characters long

第一个答案将其存储在文件中。第二个是流媒体数据“随着它们流动”。如果文件非常庞大,您应该考虑要使用的XML解析器。有些将整个xml加载到内存中并创建一个对象,但其他人只能提供可以动态处理XML的接口方法(无需将整个XML加载到内存中)。

答案 1 :(得分:0)

如果时间限制(http://php.net/manual/en/function.set-time-limit.php)不是您的问题,您是否认为内存不足?

http://www.php.net/manual/en/ini.core.php#ini.memory-limit