1
0
mirror of https://github.com/Ne-Lexa/php-zip.git synced 2025-08-15 03:34:49 +02:00

5 Commits
3.0.1 ... 3.0.3

Author SHA1 Message Date
wapplay-home-linux
42c0fc59df Merge branch 'hotfix/3.0.3' 2017-11-11 17:21:12 +03:00
wapplay-home-linux
6688f474b5 fix bug issue #8 - Error if the file is empty 2017-11-11 17:21:01 +03:00
wapplay-home-linux
810b7ca741 Merge branch 'hotfix/3.0.2' 2017-10-30 23:32:11 +03:00
wapplay-home-linux
115dfd3b52 some bugs fixed for php 32-bit 2017-10-30 23:31:39 +03:00
Ne-Lexa
183274d6da remove build on hhvm 2017-06-19 00:44:00 +03:00
9 changed files with 31 additions and 23 deletions

View File

@@ -1,9 +0,0 @@
engines:
duplication:
enabled: true
config:
languages:
- php
exclude_paths:
- tests/
- vendor/

View File

@@ -4,7 +4,6 @@ php:
- '5.6'
- '7.0'
- '7.1'
- hhvm
- nightly
# cache vendor dirs
@@ -13,10 +12,6 @@ cache:
- vendor
- $HOME/.composer/cache
addons:
code_climate:
repo_token: 486a09d58d663450146c53c81c6c64938bcf3bb0b7c8ddebdc125fe97c18213a
install:
- travis_retry composer self-update && composer --version
- travis_retry composer install --prefer-dist --no-interaction
@@ -26,8 +21,4 @@ before_script:
script:
- composer validate --no-check-lock
- vendor/bin/phpunit -v -c bootstrap.xml --coverage-clover build/logs/clover.xml
after_success:
- vendor/bin/test-reporter
- vendor/bin/phpunit -v -c bootstrap.xml

View File

@@ -1,3 +1,6 @@
## 3.0.3 (2017-11-11)
Fix bug issue #8 - Error if the file is empty.
## 3.0.0 (2017-03-15)
Merge `ZipOutputFile` with ZipFile and optimize the zip archive update.

View File

@@ -6,7 +6,6 @@
[![Latest Stable Version](https://poser.pugx.org/nelexa/zip/v/stable)](https://packagist.org/packages/nelexa/zip)
[![Total Downloads](https://poser.pugx.org/nelexa/zip/downloads)](https://packagist.org/packages/nelexa/zip)
[![Minimum PHP Version](http://img.shields.io/badge/php%2064bit-%3E%3D%205.5-8892BF.svg)](https://php.net/)
[![Test Coverage](https://codeclimate.com/github/Ne-Lexa/php-zip/badges/coverage.svg)](https://codeclimate.com/github/Ne-Lexa/php-zip/coverage)
[![License](https://poser.pugx.org/nelexa/zip/license)](https://packagist.org/packages/nelexa/zip)
Table of contents

View File

@@ -24,7 +24,7 @@
],
"minimum-stability": "stable",
"require": {
"php-64bit": "^5.5 || ^7.0"
"php": "^5.5 || ^7.0"
},
"autoload": {
"psr-4": {

View File

@@ -1,4 +1,5 @@
<?php
namespace PhpZip\Model\Entry;
use PhpZip\Exception\InvalidArgumentException;
@@ -257,6 +258,7 @@ abstract class ZipAbstractEntry implements ZipEntry
public function setCompressedSize($compressedSize)
{
if (self::UNKNOWN != $compressedSize) {
$compressedSize = sprintf('%u', $compressedSize);
if (0 > $compressedSize || $compressedSize > 0x7fffffffffffffff) {
throw new ZipException("Compressed size out of range - " . $this->name);
}
@@ -285,6 +287,7 @@ abstract class ZipAbstractEntry implements ZipEntry
public function setSize($size)
{
if (self::UNKNOWN != $size) {
$size = sprintf('%u', $size);
if (0 > $size || $size > 0x7fffffffffffffff) {
throw new ZipException("Uncompressed Size out of range - " . $this->name);
}
@@ -310,6 +313,7 @@ abstract class ZipAbstractEntry implements ZipEntry
*/
public function setOffset($offset)
{
$offset = sprintf('%u', $offset);
if (0 > $offset || $offset > 0x7fffffffffffffff) {
throw new ZipException("Offset out of range - " . $this->name);
}
@@ -523,6 +527,7 @@ abstract class ZipAbstractEntry implements ZipEntry
*/
public function setDosTime($dosTime)
{
$dosTime = sprintf('%u', $dosTime);
if (0x00000000 > $dosTime || $dosTime > 0xffffffff) {
throw new ZipException('DosTime out of range');
}
@@ -554,6 +559,7 @@ abstract class ZipAbstractEntry implements ZipEntry
{
$known = self::UNKNOWN != $externalAttributes;
if ($known) {
$externalAttributes = sprintf('%u', $externalAttributes);
if (0x00000000 > $externalAttributes || $externalAttributes > 0xffffffff) {
throw new ZipException("external file attributes out of range - " . $this->name);
}
@@ -847,6 +853,7 @@ abstract class ZipAbstractEntry implements ZipEntry
*/
public function setCrc($crc)
{
$crc = sprintf('%u', $crc);
if (0x00000000 > $crc || $crc > 0xffffffff) {
throw new ZipException("CRC-32 out of range - " . $this->name);
}

View File

@@ -258,7 +258,7 @@ abstract class ZipNewEntry extends ZipAbstractEntry
} else {
fwrite($outputStream, pack('VV', $this->getCompressedSize(), $this->getSize()));
}
} elseif ($this->getCompressedSize() !== $compressedSize) {
} elseif ($this->getCompressedSize() != $compressedSize) {
throw new ZipException($this->getName()
. " (expected compressed entry size of "
. $this->getCompressedSize() . " bytes, but is actually " . $compressedSize . " bytes)");

View File

@@ -151,7 +151,10 @@ class ZipReadEntry extends ZipAbstractEntry
fseek($this->inputStream, $pos);
// Get raw entry content
$content = fread($this->inputStream, $this->getCompressedSize());
$content = '';
if ($this->getCompressedSize() > 0) {
$content = fread($this->inputStream, $this->getCompressedSize());
}
// Strong Encryption Specification - WinZip AES
if ($this->isEncrypted()) {

View File

@@ -1,4 +1,5 @@
<?php
namespace PhpZip;
use PhpZip\Exception\ZipAuthenticationException;
@@ -1811,6 +1812,19 @@ class ZipFileTest extends ZipTestCase
self::assertTrue($result);
}
public function testEmptyContents()
{
$zipFile = new ZipFile();
$contents = '';
$zipFile->addFromString('file', $contents);
$zipFile->saveAsFile($this->outputFilename);
$zipFile->close();
$zipFile->openFile($this->outputFilename);
self::assertEquals($zipFile['file'], $contents);
$zipFile->close();
}
/**
* Test support ZIP64 ext (slow test - normal).
* Create > 65535 files in archive and open and extract to /dev/null.