X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=application%2FFileUtils.php;h=b89ea12bcc26cb7e67b09eaa60f11abf9b0c552a;hb=62f5a7581380da7885025498de10e9a20c45b358;hp=b8ad897029f7f0318feaf91fd76b728dc4d4ea12;hpb=77de24876ff542e3770aa2845e993c58f87e37df;p=github%2Fshaarli%2FShaarli.git diff --git a/application/FileUtils.php b/application/FileUtils.php index b8ad8970..b89ea12b 100644 --- a/application/FileUtils.php +++ b/application/FileUtils.php @@ -26,7 +26,7 @@ class FileUtils * The file will be created if it doesn't exist. * * @param string $file File path. - * @param string $content Content to write. + * @param mixed $content Content to write. * * @return int|bool Number of bytes written or false if it fails. * @@ -37,7 +37,7 @@ class FileUtils 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)); } @@ -50,7 +50,8 @@ class FileUtils /** * 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. @@ -61,16 +62,21 @@ class FileUtils { // 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)) + ) + ) + ); } }