protected function loadKeywordsFromFile($file)
    {
        $defaultReturn = array(
            'timestamp' => 0,
            'keywords'  => array(),
        );

        $cacheFile = @fopen($file, 'a+');
        if (empty($cacheFile)) {
            // exception without logging
            throw new ShopgateLibraryException(
                ShopgateLibraryException::FILE_READ_WRITE_ERROR,
                'Could not read file "' . $file . '".', false, false
            );
        }

        $keywordsFromFile = explode("\n", @fread($cacheFile, filesize($file)));
        @fclose($cacheFile);

        return (empty($keywordsFromFile))
            ? $defaultReturn
            : array(
                'timestamp' => (int)array_shift($keywordsFromFile), // strip timestamp in first line
                'keywords'  => $keywordsFromFile,
            );
    }