if (is_file($file) && !is_writeable($file)) {
// The datastore exists but is not writeable
throw new IOException($file);
- } else if (!is_file($file) && !is_writeable(dirname($file))) {
+ } elseif (!is_file($file) && !is_writeable(dirname($file))) {
// The datastore does not exist and its parent directory is not writeable
throw new IOException(dirname($file));
}
/**
* Read data from a file containing Shaarli database format content.
- * If the file isn't readable or doesn't exists, default data will be returned.
+ *
+ * If the file isn't readable or doesn't exist, default data will be returned.
*
* @param string $file File path.
* @param mixed $default The default value to return if the file isn't readable.
{
// Note that gzinflate is faster than gzuncompress.
// See: http://www.php.net/manual/en/function.gzdeflate.php#96439
- if (is_readable($file)) {
- return unserialize(
- gzinflate(
- base64_decode(
- substr(file_get_contents($file), strlen(self::$phpPrefix), -strlen(self::$phpSuffix))
- )
- )
- );
+ if (! is_readable($file)) {
+ return $default;
+ }
+
+ $data = file_get_contents($file);
+ if ($data == '') {
+ return $default;
}
- return $default;
+ return unserialize(
+ gzinflate(
+ base64_decode(
+ substr($data, strlen(self::$phpPrefix), -strlen(self::$phpSuffix))
+ )
+ )
+ );
}
}