Буду признателен, если кто-нибудь сможет создать лучшую процедуру для обработки сообщений мыльного запроса, полученных в виде сжатых и закодированных файлов. Я уже сделал один, и он работает, но почему-то я думаю, что это может быть лучше закодировано. Что мне не нравится, так это то, что я создаю файл, закрываю его, открываю его снова, закрываю его еще раз и открываю его еще раз, чтобы снова прочитать и окончательно удалить его. Это звучит зловеще.
function baja($B64codedString=null) {
$B64codedString="UEsDBBQACAgIAOwkhlAAAAAAAAAAAAAAAAAfAAAAUmVzdWx0YWRvQ2FyZ2FUaXR1bG9zMTMxMTY2Lnhsc+1XTUxTWRT+7usrpSqlRfxH8ixORqCQFhUVowURIwlaUoqaWIP8PLWxUlOrxpVVZ3aamLh141IXzuhCFxojOxcmGl2YuEL3LszMJLNweHPueffRH0UlIRojp7k/57vn3HPuuee98/r8WWDyxp2Vb1BGW+HClOVFRREmigX8gFthU5ZlSUjKWvP0Q1EcGfrlYKAH4zRmca48FT5LS+EWzl7iy+LTefTYY8/3k/UsjmOE/Tg+K9uSaqCJ4vN8rd5dz6xNfZI0lOb83Oz67ex7K+lBrnDjpf+ppwv2M/yGdv1Tn+C931JL4iQqgbPmSDpzNDVqfAvawT4MC+nDNkqY68T7sIJ9quF+Mfd/sMRDW45WjgmfSHY8atjMpxM4oHWy3BXug9z7qBe4zzqvGYlgCZ7ISJ6/qpLYja5sajg9hwv1eh1Nl5ETa4MNoYaG8FDj1uQ6h0k21utrKPp1JesH4+bYoVKhIDxYXRBqDZfuQ7yU+pUuLFguVbabEt2EJrQBQxJvMhzLik2uU4YdINgS5NXOIVJtRSP9SLVYr1SpTCOKEDpKjdm+ldpj14pMRqOFLdrRTPdVMOrof6RcpjmJWr6OfyyjKP8fGxIXDv731+HaLHH8hLigmlIgJ57Ntvy/5XjjDHhoBrxpBtz7EX5N0+HPuyw5BvIVPNbkdR4X5z08Ig8ea/Nu6zC/F35HAF7++PEibp46nc4Nj2UuQycTArcFj/oyesqcovcBtyBrimpd8e7dvftiNOsZSHQlBgcWAjt7Brrjvf3dvbG9VcCuWF9vzOiO7U3EY32LgPZIeEsk0r6x9cCevj4g8S53Op0xzLQ5msv+NZ4azRgns+aZ1PAJczxnGlnzaOpULktOGaOZcRIzjmTSKWZy2Uy6w0j09LeEIy1horZqYP2GtvZIW4tjxMIC8n2QvuDIMs2dQuDHg6qnngnYhWChVjt9gZoaz9GRqvgFuoj6MVTzPMDrftrzw833L/aM9EeHGG9ivJn7i4zkZSlR9IsMPSxcoJUJXdpaQu0SS//G/Q16iwmyIvinISRCKuCTUWcUGKQV2lXzFXnqolap+XmuQ9VFUc2YKMP+4wiAziLJ5gRxYprT+JwO5yLOpTjBevIcLrIvWE9Rp70udd3T0lJXxvYVeXydxlpsxnatBvc42TpRoNXKCgpf3tL43H7/CRUwF4fE/qavUGlcydlvW6X05VShxIVPhUoGNwBZj2U1BpwLXEqN6hyWU1tBbSW1VdTq+FBAPez/DPP0/UneQ/H9Tyls/n5+DvofUEsHCMe9M/TCAwAAABAAAFBLAQIUABQACAgIAOwkhlDHvTP0wgMAAAAQAAAfAAAAAAAAAAAAAAAAAAAAAABSZXN1bHRhZG9DYXJnYVRpdHVsb3MxMzExNjYueGxzUEsFBgAAAAABAAEATQAAAA8EAAAAAA==";
$decod = base64_decode($B64codedString);
if (!$tmpFile = tempnam(sys_get_temp_dir(), 'tEl_')) die("Error - No pudo generar temporal");
$myZip = fopen($tmpFile, "w") or die("Error - No pudo abrir archivo ZIP");
fwrite($myZip,$decod);
fclose($myZip);
$zip = new ZipArchive;
if ($zip->open($tmpFile)==TRUE) {
$contents = $zip->getFromIndex(0);
$zip->close();
$excelFile = $tmpFile;
$myExcel = fopen($excelFile, "w") or die("Error - No pudo abrir archivo EXCEL");
fwrite($myExcel,$contents);
fclose($myExcel);
$xls = SimpleXLS::parse($excelFile);
$arr = $xls->rows();
echo 'Mensaje = ',$arr[1][2];
} else {
echo 'Error - No pudo crear el ZIP';
}
unlink($tmpFile);
}