1

当 Web 服务返回的数据变大时,我无法处理它。我为此目的使用 NuSOAP PHP 库,当服务返回的数据很小时,一切顺利,但当它变大时,我会遇到内部服务器错误 500。

我所做的只是使用 NuSOAP 来检索数据,这些数据本身将结果解析为一个数组,然后我迭代这个数组以将数据导入本地 DDBB。没有什么花哨。它可以获得的结果越大,结果为 1000 个,因为服务中有一个分页选项参数,该参数将限制为每次调用时的结果....但是在大约 800 条记录之后,我遇到了错误。

我试图增加初始化集中的内存并增加执行时间限制,但没有成功。

我的猜测是问题在于数据的频率与 php 解析数据的频率不同。解决方案?也许缓冲区在这种情况下可以正常工作,但不确定如何在 PHP 中实现这一点。有什么想法吗?

这是代码:

$client = new nusoap_client($WSDL);
do {
    $data = $client->call($serviceName, array('GetValuesFrom' => $getValuesFrom,'PW'            => $pw, 'StartIndex' => $startIndex, 'Count' => $count), $ns, $ns);

    // Check there if there are results at all
    if(!$data) {
        $message .= 'No results returned by the service<br>';
    break;
    }

    // Script that imports it to the DDBB       
    require_once('import_into_DDBB.php');

    $pulledData = count($data);
    $totalProcessed += $pulledData;
    $startIndex++;  
}
while($count == $pulledData);
4

0 回答 0