Return false if the zip entry could not be located
Previously the function did not check whether the return value of `ZipArchive::locateName` was `false`. And when it was, it was passed straight into `ZipArchive::getFromIndex`, which casts it to an integer, resulting in it incorrectly retrieving the entry at index `0`. Fixes #262 Closes #268
This commit is contained in:
parent
8183c71e78
commit
f7518dadc9
|
@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
- Control characters in cell values are automatically escaped - [#212](https://github.com/PHPOffice/PhpSpreadsheet/issues/212)
|
- Control characters in cell values are automatically escaped - [#212](https://github.com/PHPOffice/PhpSpreadsheet/issues/212)
|
||||||
- Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al-lala [#218](https://github.com/PHPOffice/PhpSpreadsheet/issues/218)
|
- Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al-lala [#218](https://github.com/PHPOffice/PhpSpreadsheet/issues/218)
|
||||||
- Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist [#225](https://github.com/PHPOffice/PhpSpreadsheet/pull/225) Refer to [issue#201](https://github.com/PHPOffice/PhpSpreadsheet/issues/201)
|
- Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist [#225](https://github.com/PHPOffice/PhpSpreadsheet/pull/225) Refer to [issue#201](https://github.com/PHPOffice/PhpSpreadsheet/issues/201)
|
||||||
|
- `Reader\Xlsx::getFromZipArchive()` function return false if the zip entry could not be located. - @anton-harvey [#268](https://github.com/PHPOffice/PhpSpreadsheet/pull/268)
|
||||||
|
|
||||||
### BREAKING CHANGE
|
### BREAKING CHANGE
|
||||||
|
|
||||||
|
|
|
@ -308,13 +308,9 @@ class Xlsx extends BaseReader
|
||||||
// so we need to load case-insensitively from the zip file
|
// so we need to load case-insensitively from the zip file
|
||||||
|
|
||||||
// Apache POI fixes
|
// Apache POI fixes
|
||||||
$contents = $archive->getFromIndex(
|
$contents = $archive->getFromName($fileName, 0, ZipArchive::FL_NOCASE);
|
||||||
$archive->locateName($fileName, ZipArchive::FL_NOCASE)
|
|
||||||
);
|
|
||||||
if ($contents === false) {
|
if ($contents === false) {
|
||||||
$contents = $archive->getFromIndex(
|
$contents = $archive->getFromName(substr($fileName, 1), 0, ZipArchive::FL_NOCASE);
|
||||||
$archive->locateName(substr($fileName, 1), ZipArchive::FL_NOCASE)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $contents;
|
return $contents;
|
||||||
|
|
Loading…
Reference in New Issue