if ($options['alsostatic'] == null) {
    // remove all known static paths - list taken from .htaccess
    /// @todo we should try to understand if we have to anchor regexp to url root (ie if we are in vhost mode)
    $exclude[] = '#.*/var/([^/]+/)?storage/images(-versioned)?/.*#';
    $exclude[] = '#.*/var/([^/]+/)?cache/(texttoimage|public)/.*#';
    $exclude[] = '#.*/design/[^/]+/(stylesheets|images|javascript)/.*#';
    $exclude[] = '#.*/share/icons/.*#';
    $exclude[] = '#.*/extension/[^/]+/design/[^/]+/(stylesheets|flash|images|lib|javascripts?)/.*#';
    $exclude[] = '#.*/packages/styles/.+/thumbnail/.*#';
    $exclude[] = '#.*/var/storage/packages/.*#';
}
if ($options['excludefilter'] !== null) {
    $exclude[] = '#' . str_replace('#', '\\#', $options['excludefilter']) . '#';
}
$ok = eZPerfLoggerLogManager::updateStatsFromLogFile($logFilePath, 'eZPerfLoggerApacheLogger', 'eZPerfLoggerUrlExtractorStorage', null, $exclude, true);
$stats = eZPerfLoggerUrlExtractorStorage::getStats();
/// @todo sort urls based on inverse access time / name / frequency
if ($options['sort'] == '' || $options['sort'] == 'count') {
    foreach ($stats as $key => $row) {
        $count[$key] = $row['count'];
        $url[$key] = $row['url'];
    }
    // Add $data as the last parameter, to sort by the common key
    array_multisort($count, SORT_DESC, $url, SORT_ASC, $stats);
}
$i = 0;
foreach ($stats as $idx => $data) {
    /// @todo shall we avoid printing empty lines?
    if ($options['data'] == '' || $options['data'] == 'count') {
        echo "[{$data['count']}] ";
    }
 public static function setOptions($opts)
 {
     self::$options = array_merge(self::$options, $opts);
 }