bug zip related

predator

web designer
bug zip related

вот этот баг попрежнему открыт
http://bugs.php.net/bug.php?id=49072

если заливать через ZipArchive битый архив то $zip->open( $_str, ZIPARCHIVE::CHECKCONS )
возвращает true (должно поидее ZIPARCHIVE::ER_CRC либо false)
как только что-то делаешь (напрмер extractTo) скрипт вешает пхп

не понял как зарегится на bugs.php.net
вообще странный сайт какой-то

может кто предложит как в пхп определить битый файл или нет?
или есть какая-то функция корректно обрабатывающая такие файлы, чтобы можно было до ZipArchive проверить файл?

зы
проверял это всё на
5.2.11, 5.2.12 / windows xp sp3 / apache 2.2
5.2.9 / centos linux / apache 2.0

-~{}~ 10.02.10 14:59:

пока сделал так
PHP:
class FixedZipArchive extends ZipArchive {

	/**
	 * opens a stream to a ZIP archive file. calls the ZipArchive::open() internally.
	 * overwrites ZipArchive:: open() to add fix 49072 bug 
	 * (see [url]http://bugs.php.net/bug.php?id=49072[/url] (5.2.12 still exists))
	 *
	 * @param string $_str
	 * @param int $flags
	 * return mixed
	 */
	public function open( $_str='', $flags ) {
		if ( empty( $_str ) ) {
			return false; // нет имени файла
		}
		if ( empty( $flags ) ) {
			$_strOut=shell_exec( 'unzip -t '.$_str );
			$_arrTest=explode( 'No errors detected in compressed data', $_strOut );
			if ( count( $_arrTest )==1 ) {
				return ZIPARCHIVE::ER_CRC; // corrupted zip file
			}
		}
		return parent::open( $_str, $flags );
	}
}
но это конечно костыли
 
Сверху