Php SOAP请求处理大型数据花费的时间太长

Php SOAP请求处理大型数据花费的时间太长,php,arrays,soap,Php,Arrays,Soap,我通过帮助SOAP客户端从其他网站获得了一个数组,它是一个相当大的数组,您可以在这里查看短版本 我需要得到类别名称,我的代码在这里,它的工作,但减慢网站。如果有人能提供更好的代码 $client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl'); $client->soap_defencoding = 'UTF-8'; $client->decode_utf8 = false; $parametre

我通过帮助SOAP客户端从其他网站获得了一个数组,它是一个相当大的数组,您可以在这里查看短版本

我需要得到类别名称,我的代码在这里,它的工作,但减慢网站。如果有人能提供更好的代码

$client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl');
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = false;
$parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL', 'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25');

$result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), "");
foreach($result['PriceList']['categories']['category'] as $category)
{
    echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>';
}
$client=新的nusoap\u客户端('http://87.253.63.146/b2b/b2bWS?WSDL“,”wsdl“);
$client->soap_defencoding='UTF-8';
$client->decode_utf8=false;
$parametrebi=array('user'=>'','brand'=>'','vat\u zone'=>'GEVAT','currency'=>'GEL','all\u items'=>'Y','page\u num'=>'1','line\u per\u page'=>'25');
$result=$client->call('GetPriceList',$parameterbi,array('return'=>'xsd:string'),“”);
foreach($result['PriceList']['categories']['categories']作为$category)
{
回显'.$category['!name'].';
}

类别是否经常改变?
你不能每隔一段时间就这些类别进行投票吗?

例如,每隔5分钟左右进行一次soap调用,并将类别保存到DB中的表中(这不是一个好主意)或memcache中

如果您可以使用memcache…下面是一个ruff示例:

$memcache_obj = new Memcache();
$memcache_obj->connect('memcache_host', 11211);

if(!$categories = $memcache_obj->get('soap_categories')) {
 $client = new nusoap_client('http://87.253.63.146/b2b/b2bWS?WSDL', 'wsdl');
 $client->soap_defencoding = 'UTF-8';
 $client->decode_utf8 = false;
 $parametrebi = array('user' => '','brand' => '', 'vat_zone' => 'GEVAT', 'currency' => 'GEL',    'all_items' => 'Y', 'page_num' => '1', 'lines_per_page' => '25');
 $result = $client->call('GetPriceList', $parametrebi, array('return' => 'xsd:string'), "");
 $categories = $result['PriceList']['categories']['category'];
 $memcache_obj->set('soap_categories', $categories)
}


foreach($categories as $category)
{
    echo '<option value="'.$category['!id'].'">'.$category['!name'].'</option>';
}
$memcache_obj=newmemcache();
$memcache_obj->connect('memcache_host',11211);
如果(!$categories=$memcache\u obj->get('soap\u categories')){
$client=新nusoap_客户机($client)http://87.253.63.146/b2b/b2bWS?WSDL“,”wsdl“);
$client->soap_defencoding='UTF-8';
$client->decode_utf8=false;
$parametrebi=array('user'=>'','brand'=>'','vat\u zone'=>'GEVAT','currency'=>'GEL','all\u items'=>'Y','page\u num'=>'1','line\u per\u page'=>'25');
$result=$client->call('GetPriceList',$parameterbi,array('return'=>'xsd:string'),“”);
$categories=$result['PriceList']['categories']['categories'];
$memcache_obj->set('soap_categories',$categories)
}
foreach($categories作为$category)
{
回显'.$category['!name'].';
}

您可以将memcache上的过期时间设置为1,2,5…ect分钟,以便在每次缓存过期时更新类别。否则,当缓存过期时,查找时间将少于5-10毫秒。

非常感谢。。。我决定在会话中存储数据,这是个好主意吗?在会话中存储数据是否有任何限制?