recurro a ustedes ya en la web no eh podido encontrar respuestas a como puedo manejar un fatal error, al momento que aparezca me indique cual fue el ultimo dato que alcanzo a consultar, actualmente tengo un script que realiza unas consulta a una API o WebService, al consultar pocos datos este me arroja el resultado sin problemas, pero cuando ya son muchos datos a consultar y dejo correr el script surge el problema y me aparece el siguiente mensaje:
Código PHP:
PHP Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in /var/www/html/dataware/ExtraerDatosLineas.php:29
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'https://bss.net...', '', 1, 0)
#1 /var/www/html/dataware/ExtraerDatosLineas.php(29): SoapClient->__call('getSubscription', Array)
#2 /var/www/html/dataware/ExtraerDatosLineas.php(29): SoapClient->getSubscription(Array)
#3 {main}
thrown in /var/www/html/dataware/ExtraerDatosLineas.php on line 29
Como dije al principio lo que quiero saber es que si al momento que aparezca el fatal error me pueda indicar cual fue el ultimo dato que alcanzo a consultar y luego consultar los datos restantes o existe otra forma que no se detenga el script para que termine de consultar todo los datos.
Este es el script que utilizo :
Código PHP:
<?php
$clientBSS = new SoapClient($urlBSS, array('exceptions' => true, "trace"=>true,'cache_wsdl' => WSDL_CACHE_NONE));
$subcriptionID=fopen('subscriptionID.txt','r') or die("No se pudo abrir el archivo"); //Datos a Consultar
$data_lineas=fopen('datos_lineas.csv','w');//Resultado de los datos consultados
while (!feof($subcriptionID))
{
//Obtengo la lina del dato a consultar
$subID=fgets($subcriptionID);
//Limpio el dato
$subsID=trim($subID);
//Funcion para consultar los datos
$r2 = $clientBSS->getSubscription(array('auth'=>array('password'=>'xxxxx','user'=>'xxxxxxx'),
'subscriptionID'=>$subsID));
//Verifico que el dato exista
if($r2->GetSubscriptionResult->result->callMsg == 'SUCCESS')
{
//Limpio el dato
$idSubscriberNet = @eregi_replace("[\n|\r|\n\r]", ' ', $r2->GetSubscriptionResult->subscription->idSubscriber);
//Lo guardo en un array
$cliente = array($idSubscriberNet);
//Lo imprimo en un archivo separado por ,
fputcsv($data_lineas,$cliente);
}
}
fclose($data_lineas);
fclose($subcriptionID);
$clientBSS->__getLastRequest();
$clientBSS->__getLastResponse();
?>