PHP SoapClient向文件写入响应


PHP SoapClient write response to file

这是我第一次使用SOAP(但我很擅长PHP)。我的问题是,我连接到一个服务器,发送我通过soap大xml(大于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();

恐怕在你把它写在一个单独的文件上之前,它已经占据了你的内存上的一些空间,更糟糕的是它会做很多的进程,占用更多的内存空间,我认为另一个好的方法是在你使用的函数上寻找一个参数,这个参数可以控制响应的大小,比如对于每个响应,我只想有最大5mb的响应大小。我觉得这有点难以解释,但这是你可以用分页概念做的事情,你将每页限制为5个项目,例如在第一页显示5个项目,在第二页显示另外5个项目,等等。如果这不起作用,或者不可能这样做,那么最后一个选择是升级你的服务器,以便能够支持你真正需要的东西。我知道这可能是一个更沉重的选择,但如果没有其他办法,那么我认为这将是解决你问题的最可行的选择。:)