$params = array(
    'fq' => $fq,
    'fl' =>$fl,
    'start' => $offset,
    'rows' => $rows
);
$url = prepareUrl($params, $solrUrl);

$response = getCurlResponse($url);
if (empty($response))
{
    $cli->error('Solr call returned empty string.');
    $script->shutdown(1);
}
$xmlAsArray = processXML($response, $parsedFields);
$csv = prepareCSV($xmlAsArray, $parsedFields);
$outputFile = $options['outputFile'];
if (empty($outputFile))
{
    $cli->output($csv);
}
else
{
    $handle = fopen($outputFile, 'w');
    fwrite($handle, $csv);
    fclose($handle);
    $cli->notice("Export saved in file {$outputFile}");
    $cli->notice('Processed ' . (count($xmlAsArray)) . ' rows');
}
$script->shutdown();
$results = array();
foreach ($ids as $id)
{
    try {
        $results[] = fetchFieldsForId($id, $fields, $listFields, $cli);
    } catch (Exception $e) {
        $cli->error($e->getMessage());
        if ($haltOnError)
        {
            $script->shutdown(1);
        }
    }
}

$csv = prepareCSV($results, $fields);

if ($outputFile) {
    $handle = fopen($outputFile, 'w');
    fwrite($handle, $csv);
    fclose($handle);
    $cli->notice("Export saved in file {$outputFile}");
} else {
    echo $csv;
}

$cli->notice('Processed ' . (count($results)) . ' rows');
$script->shutdown();

function parseRequestIds($ids)
{