这是我第一次使用SOAP(但我在PHP方面相当不错)。我的问题是我连接到一个服务器,通过soap向我发送大型xmls(大于50mb),我不知道PHP的SoapClient用什么来解析xml,但我担心它可能会让我的脚本耗尽存储器中。
我可以将SOAP响应写入文件,所以我最终不会使用太多内存吗?或者这甚至是一种威胁?
通常我会将响应写入文件,然后使用XMLReader读取它,但是现在我只是解析了响应。
$client = new SoapClient("http://....wsdl",array(
'login' => 'test',
'password' => 'test'));
$something = $client->__soapCall('getThings',array());
var_dump($something);
die();
答案 0 :(得分:0)
我担心在你把它写在一个单独的文件上之前它已经占用了你内存上的一些空间而且它会做更多的处理并且在内存上占用更多的空间,我认为另一个好的方法是在你使用的函数上寻找一个参数,它可以控制响应的大小,就像每个响应一样,我想只有最大5mb的响应大小。我发现它有点难以解释但是你会用分页概念做一些事情,你将每个页面限制为5个项目,例如第1页显示5个项目,第2页显示另外5个项目,依此类推。如果那不起作用或者不可能这样做那么最后一个选项是升级你的服务器以便能够支持你真正需要的东西我知道这可能是一个更重的选择,但如果没有其他选择然后我认为这将是解决问题最可行的选择。 :)