Ran PHPCBF
phpcs-errors:253 phpunit-status:successful
This commit is contained in:
		| @@ -54,7 +54,7 @@ foreach ($availableFields as $categoryName => $fieldCategory) { | |||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| $allowed_inclusion_kind_of = array('inclusion_kind_of', 'Schenkung', 'Kauf', 'Grabung', 'Notbergung', 'Erbschaft', 'Stiftung', 'Enteignung', 'Ursprungsbestand', 'Ajándékozás','Vétel','Feltárás','Hivatalos átadás','Csere','Gyűjtés','Saját előállítás','Törzsanyag','Letét', 'endowment', 'dispossession', 'old stock', ''); | $allowed_inclusion_kind_of = ['inclusion_kind_of', 'Schenkung', 'Kauf', 'Grabung', 'Notbergung', 'Erbschaft', 'Stiftung', 'Enteignung', 'Ursprungsbestand', 'Ajándékozás','Vétel','Feltárás','Hivatalos átadás','Csere','Gyűjtés','Saját előállítás','Törzsanyag','Letét', 'endowment', 'dispossession', 'old stock', '']; | ||||||
|  |  | ||||||
| ///// Check #1 | ///// Check #1 | ||||||
| //echo '<pre>';print_r($allowed);echo '</pre>'; | //echo '<pre>';print_r($allowed);echo '</pre>'; | ||||||
| @@ -113,7 +113,7 @@ function get_duplicates($array) { | |||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| $mandatory = array('inventory_number','object_type','object_title','object_description'); | $mandatory = ['inventory_number','object_type','object_title','object_description']; | ||||||
| for ($i = 0; $i < count($mandatory); $i++) { | for ($i = 0; $i < count($mandatory); $i++) { | ||||||
|     if (!in_array($mandatory[$i], $erstezeile)) { |     if (!in_array($mandatory[$i], $erstezeile)) { | ||||||
|         echo '<br><i style="font-style:normal;color:#990000;">Mandatory: Column <b>' . $mandatory[$i] . '</b> missing</i>'; |         echo '<br><i style="font-style:normal;color:#990000;">Mandatory: Column <b>' . $mandatory[$i] . '</b> missing</i>'; | ||||||
| @@ -189,8 +189,8 @@ else { | |||||||
| ///// Check #6 | ///// Check #6 | ||||||
| echo '<br><br>6: Dependency of content observed?'; | echo '<br><br>6: Dependency of content observed?'; | ||||||
|  |  | ||||||
| $crosscheck1 = array('object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value'); | $crosscheck1 = ['object_other_title','detailed_description','detailed_description','inscription','inscription','dimensions_separate_length_value', 'dimensions_separate_width_value', 'dimensions_separate_height_value', 'dimensions_separate_diameter_value', 'dimensions_separate_wall_thickness_value', 'dimensions_separate_weight_value','closer_location','bought_for','worth_value','worth_insurance_value']; | ||||||
| $crosscheck2 = array('object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit'); | $crosscheck2 = ['object_other_title_kind_of','detailed_description_md','detailed_description_extern','inscription_md','inscription_extern','dimensions_separate_length_unit', 'dimensions_separate_width_unit', 'dimensions_separate_height_unit', 'dimensions_separate_diameter_unit', 'dimensions_separate_wall_thickness_unit', 'dimensions_separate_weight_unit','closer_location_as','bought_for_currency','worth_unit','worth_insurance_unit']; | ||||||
|  |  | ||||||
| $depcon_error = 0; | $depcon_error = 0; | ||||||
| for ($l = 0; $l < count($crosscheck1); $l++) { | for ($l = 0; $l < count($crosscheck1); $l++) { | ||||||
|   | |||||||
| @@ -1,7 +1,13 @@ | |||||||
| <?PHP | <?PHP | ||||||
|  |  | ||||||
| function transform($transform) | /** | ||||||
| { |  * Function for sanitizing contents for prospective XML contents. | ||||||
|  |  * | ||||||
|  |  * @param string $transform Input string. | ||||||
|  |  * | ||||||
|  |  * @return string | ||||||
|  |  */ | ||||||
|  | function transform(string $transform):string { | ||||||
|     $transform = str_replace(chr(14), "", $transform); |     $transform = str_replace(chr(14), "", $transform); | ||||||
|     $transform = str_replace('"', '"', $transform); |     $transform = str_replace('"', '"', $transform); | ||||||
|     $transform = str_replace('&', '&', $transform); |     $transform = str_replace('&', '&', $transform); | ||||||
| @@ -24,8 +30,14 @@ function transform($transform) | |||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function tagify($tagify) | /** | ||||||
| { |  * Function for sanitizing contents for prospective XML contents. | ||||||
|  |  * | ||||||
|  |  * @param string $tagify Input string. | ||||||
|  |  * | ||||||
|  |  * @return string | ||||||
|  |  */ | ||||||
|  | function tagify(string $tagify):string { | ||||||
|     $tagify = str_replace(' ', '_', $tagify); |     $tagify = str_replace(' ', '_', $tagify); | ||||||
|     $tagify = str_replace('/', '_', $tagify); |     $tagify = str_replace('/', '_', $tagify); | ||||||
|     $tagify = str_replace(',', '_', $tagify); |     $tagify = str_replace(',', '_', $tagify); | ||||||
|   | |||||||
							
								
								
									
										757
									
								
								inc/zip.php
									
									
									
									
									
								
							
							
						
						
									
										757
									
								
								inc/zip.php
									
									
									
									
									
								
							| @@ -11,431 +11,430 @@ | |||||||
|  * @version 1.1 |  * @version 1.1 | ||||||
|  */ |  */ | ||||||
| class Zip { | class Zip { | ||||||
| 	private $zipMemoryThreshold = 1048576; // Autocreate tempfile if the zip data exceeds 1048576 bytes (1 MB) |     private $zipMemoryThreshold = 1048576; // Autocreate tempfile if the zip data exceeds 1048576 bytes (1 MB) | ||||||
| 	private $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record |     private $endOfCentralDirectory = "\x50\x4b\x05\x06\x00\x00\x00\x00"; //end of Central directory record | ||||||
| 	private $localFileHeader = "\x50\x4b\x03\x04"; // Local file header signature |     private $localFileHeader = "\x50\x4b\x03\x04"; // Local file header signature | ||||||
| 	private $centralFileHeader = "\x50\x4b\x01\x02"; // Central file header signature |     private $centralFileHeader = "\x50\x4b\x01\x02"; // Central file header signature | ||||||
|  |  | ||||||
| 	private $zipData = null; |     private $zipData = null; | ||||||
| 	private $zipFile = null; |     private $zipFile = null; | ||||||
| 	private $zipComment = null; |     private $zipComment = null; | ||||||
| 	private $cdRec = array(); // central directory |     private $cdRec = array(); // central directory | ||||||
| 	private $offset = 0; |     private $offset = 0; | ||||||
| 	private $isFinalized = false; |     private $isFinalized = false; | ||||||
|  |  | ||||||
| 	private $streamChunkSize = 65536; |     private $streamChunkSize = 65536; | ||||||
| 	private $streamFilePath = null; |     private $streamFilePath = null; | ||||||
| 	private $streamTimeStamp = null; |     private $streamTimeStamp = null; | ||||||
| 	private $streamComment = null; |     private $streamComment = null; | ||||||
| 	private $streamFile = null; |     private $streamFile = null; | ||||||
| 	private $streamData = null; |     private $streamData = null; | ||||||
| 	private $streamFileLength = 0;	 |     private $streamFileLength = 0;   | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Constructor. |      * Constructor. | ||||||
| 	 * |      * | ||||||
| 	 * @param $useZipFile boolean. Write temp zip data to tempFile? Default false |      * @param $useZipFile boolean. Write temp zip data to tempFile? Default false | ||||||
| 	 */ |      */ | ||||||
| 	function __construct($useZipFile = false) { |     function __construct($useZipFile = false) { | ||||||
| 		if ($useZipFile) { |         if ($useZipFile) { | ||||||
| 			$this->zipFile = tmpfile(); |             $this->zipFile = tmpfile(); | ||||||
| 		} else { |         } else { | ||||||
| 			$this->zipData = ""; |             $this->zipData = ""; | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	function __destruct() { |     function __destruct() { | ||||||
| 		if (!is_null($this->zipFile)) { |         if (!is_null($this->zipFile)) { | ||||||
| 			fclose($this->zipFile); |             fclose($this->zipFile); | ||||||
| 		} |         } | ||||||
| 		$this->zipData= null; |         $this->zipData= null; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Set Zip archive comment. |      * Set Zip archive comment. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $newComment New comment. null to clear. |      * @param string $newComment New comment. null to clear. | ||||||
| 	 */ |      */ | ||||||
| 	public function setComment($newComment = null) { |     public function setComment($newComment = null) { | ||||||
| 		$this->zipComment = $newComment; |         $this->zipComment = $newComment; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Set zip file to write zip data to. |      * Set zip file to write zip data to. | ||||||
| 	 * This will cause all present and future data written to this class to be written to this file. |      * This will cause all present and future data written to this class to be written to this file. | ||||||
| 	 * This can be used at any time, even after the Zip Archive have been finalized. Any previous file will be closed. |      * This can be used at any time, even after the Zip Archive have been finalized. Any previous file will be closed. | ||||||
| 	 * Warning: If the given file already exists, it will be overwritten. |      * Warning: If the given file already exists, it will be overwritten. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $fileName |      * @param string $fileName | ||||||
| 	 */ |      */ | ||||||
| 	public function setZipFile($fileName) { |     public function setZipFile($fileName) { | ||||||
| 		if (file_exists($fileName)) { |         if (file_exists($fileName)) { | ||||||
| 			unlink ($fileName); |             unlink ($fileName); | ||||||
| 		} |         } | ||||||
| 		$fd=fopen($fileName, "x+b"); |         $fd=fopen($fileName, "x+b"); | ||||||
| 		if (!is_null($this->zipFile)) { |         if (!is_null($this->zipFile)) { | ||||||
| 			rewind($this->zipFile); |             rewind($this->zipFile); | ||||||
| 			while(!feof($this->zipFile)) { |             while(!feof($this->zipFile)) { | ||||||
| 			    fwrite($fd, fread($this->zipFile, $this->streamChunkSize)); |                 fwrite($fd, fread($this->zipFile, $this->streamChunkSize)); | ||||||
| 			}  |             }  | ||||||
|              |              | ||||||
| 			fclose($this->zipFile); |             fclose($this->zipFile); | ||||||
| 		} else { |         } else { | ||||||
| 			fwrite($fd, $this->zipData); |             fwrite($fd, $this->zipData); | ||||||
| 			$this->zipData = null; |             $this->zipData = null; | ||||||
| 		} |         } | ||||||
| 		$this->zipFile = $fd; |         $this->zipFile = $fd; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Add an empty directory entry to the zip archive. |      * Add an empty directory entry to the zip archive. | ||||||
| 	 * Basically this is only used if an empty directory is added. |      * Basically this is only used if an empty directory is added. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $directoryPath  Directory Path and name to be added to the archive. |      * @param string $directoryPath  Directory Path and name to be added to the archive. | ||||||
| 	 * @param int    $timestamp      (Optional) Timestamp for the added directory, if omitted or set to 0, the current time will be used. |      * @param int    $timestamp      (Optional) Timestamp for the added directory, if omitted or set to 0, the current time will be used. | ||||||
| 	 * @param string $fileComment    (Optional) Comment to be added to the archive for this directory. To use fileComment, timestamp must be given. |      * @param string $fileComment    (Optional) Comment to be added to the archive for this directory. To use fileComment, timestamp must be given. | ||||||
| 	 */ |      */ | ||||||
| 	public function addDirectory($directoryPath, $timestamp = 0, $fileComment = null) { |     public function addDirectory($directoryPath, $timestamp = 0, $fileComment = null) { | ||||||
| 		if ($this->isFinalized) { |         if ($this->isFinalized) { | ||||||
| 			return; |             return; | ||||||
| 		} |         } | ||||||
| 		$this->buildZipEntry($directoryPath, $fileComment, "\x00\x00", "\x00\x00", $timestamp, "\x00\x00\x00\x00", 0, 0, 16); |         $this->buildZipEntry($directoryPath, $fileComment, "\x00\x00", "\x00\x00", $timestamp, "\x00\x00\x00\x00", 0, 0, 16); | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Add a file to the archive at the specified location and file name. |      * Add a file to the archive at the specified location and file name. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $data        File data. |      * @param string $data        File data. | ||||||
| 	 * @param string $filePath    Filepath and name to be used in the archive. |      * @param string $filePath    Filepath and name to be used in the archive. | ||||||
| 	 * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. |      * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. | ||||||
| 	 * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. |      * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. | ||||||
| 	 */ |      */ | ||||||
| 	public function addFile($data, $filePath, $timestamp = 0, $fileComment = null)   { |     public function addFile($data, $filePath, $timestamp = 0, $fileComment = null)   { | ||||||
| 		if ($this->isFinalized) { |         if ($this->isFinalized) { | ||||||
| 			return; |             return; | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		$gzType = "\x08\x00"; // Compression type 8 = deflate |         $gzType = "\x08\x00"; // Compression type 8 = deflate | ||||||
| 		$gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression. |         $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression. | ||||||
| 		$dataLength = strlen($data); |         $dataLength = strlen($data); | ||||||
| 		$fileCRC32 = pack("V", crc32($data)); |         $fileCRC32 = pack("V", crc32($data)); | ||||||
|  |  | ||||||
| 		$gzData = gzcompress($data); |         $gzData = gzcompress($data); | ||||||
| 		$gzData = substr( substr($gzData, 0, strlen($gzData) - 4), 2); // gzcompress adds a 2 byte header and 4 byte CRC we can't use. |         $gzData = substr( substr($gzData, 0, strlen($gzData) - 4), 2); // gzcompress adds a 2 byte header and 4 byte CRC we can't use. | ||||||
| 		// The 2 byte header does contain useful data, though in this case the 2 parameters we'd be interrested in will always be 8 for compression type, and 2 for General purpose flag. |         // The 2 byte header does contain useful data, though in this case the 2 parameters we'd be interrested in will always be 8 for compression type, and 2 for General purpose flag. | ||||||
| 		$gzLength = strlen($gzData); |         $gzLength = strlen($gzData); | ||||||
|  |  | ||||||
| 		if ($gzLength >= $dataLength) { |         if ($gzLength >= $dataLength) { | ||||||
| 			$gzLength = $dataLength; |             $gzLength = $dataLength; | ||||||
| 			$gzData = $data; |             $gzData = $data; | ||||||
| 			$gzType = "\x00\x00"; // Compression type 0 = stored |             $gzType = "\x00\x00"; // Compression type 0 = stored | ||||||
| 			$gpFlags = "\x00\x00"; // Compression type 0 = stored |             $gpFlags = "\x00\x00"; // Compression type 0 = stored | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		if (is_null($this->zipFile) && ($this->offset + $gzLength) > $this->zipMemoryThreshold) { |         if (is_null($this->zipFile) && ($this->offset + $gzLength) > $this->zipMemoryThreshold) { | ||||||
| 			$this->zipFile = tmpfile(); |             $this->zipFile = tmpfile(); | ||||||
| 			fwrite($this->zipFile, $this->zipData); |             fwrite($this->zipFile, $this->zipData); | ||||||
| 			$this->zipData = null; |             $this->zipData = null; | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		$this->buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, 32); |         $this->buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, 32); | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			$this->zipData .= $gzData; |             $this->zipData .= $gzData; | ||||||
| 		} else { |         } else { | ||||||
| 			fwrite($this->zipFile, $gzData); |             fwrite($this->zipFile, $gzData); | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Add a file to the archive at the specified location and file name. |      * Add a file to the archive at the specified location and file name. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $dataFile    File name/path. |      * @param string $dataFile    File name/path. | ||||||
| 	 * @param string $filePath    Filepath and name to be used in the archive. |      * @param string $filePath    Filepath and name to be used in the archive. | ||||||
| 	 * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. |      * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. | ||||||
| 	 * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. |      * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. | ||||||
| 	 */ |      */ | ||||||
| 	public function addLargeFile($dataFile, $filePath, $timestamp = 0, $fileComment = null)   { |     public function addLargeFile($dataFile, $filePath, $timestamp = 0, $fileComment = null)   { | ||||||
| 		if ($this->isFinalized) { |         if ($this->isFinalized) { | ||||||
| 			return; |             return; | ||||||
| 		} |         } | ||||||
|      |      | ||||||
| 		$this->openStream($filePath, $timestamp, $fileComment); |         $this->openStream($filePath, $timestamp, $fileComment); | ||||||
|  |  | ||||||
| 		$fh = fopen($dataFile, "rb"); |         $fh = fopen($dataFile, "rb"); | ||||||
| 		while(!feof($fh)) { |         while(!feof($fh)) { | ||||||
| 		    $this->addStreamData(fread($fh, $this->streamChunkSize)); |             $this->addStreamData(fread($fh, $this->streamChunkSize)); | ||||||
| 		}  |         }  | ||||||
| 		fclose($fh); |         fclose($fh); | ||||||
|  |  | ||||||
| 		$this->closeStream(); |         $this->closeStream(); | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Create a stream to be used for large entries. |      * Create a stream to be used for large entries. | ||||||
| 	 * |      * | ||||||
| 	 * @param string $filePath    Filepath and name to be used in the archive. |      * @param string $filePath    Filepath and name to be used in the archive. | ||||||
| 	 * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. |      * @param int    $timestamp   (Optional) Timestamp for the added file, if omitted or set to 0, the current time will be used. | ||||||
| 	 * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. |      * @param string $fileComment (Optional) Comment to be added to the archive for this file. To use fileComment, timestamp must be given. | ||||||
| 	 */ |      */ | ||||||
| 	public function openStream($filePath, $timestamp = 0, $fileComment = null)   { |     public function openStream($filePath, $timestamp = 0, $fileComment = null)   { | ||||||
| 		if ($this->isFinalized) { |         if ($this->isFinalized) { | ||||||
| 			return; |             return; | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			$this->zipFile = tmpfile(); |             $this->zipFile = tmpfile(); | ||||||
| 			fwrite($this->zipFile, $this->zipData); |             fwrite($this->zipFile, $this->zipData); | ||||||
| 			$this->zipData = null; |             $this->zipData = null; | ||||||
| 		} |         } | ||||||
|          |          | ||||||
| 		if (strlen($this->streamFilePath) > 0) { |         if (strlen($this->streamFilePath) > 0) { | ||||||
| 			closeStream(); |             closeStream(); | ||||||
| 		} |         } | ||||||
| 		$this->streamFile = tempnam(sys_get_temp_dir(), 'Zip'); |         $this->streamFile = tempnam(sys_get_temp_dir(), 'Zip'); | ||||||
| 		$this->streamData = gzopen($this->streamFile, "w9"); |         $this->streamData = gzopen($this->streamFile, "w9"); | ||||||
| 		$this->streamFilePath = $filePath; |         $this->streamFilePath = $filePath; | ||||||
| 		$this->streamTimestamp = $timestamp; |         $this->streamTimestamp = $timestamp; | ||||||
| 		$this->streamFileComment = $fileComment; |         $this->streamFileComment = $fileComment; | ||||||
| 		$this->streamFileLength = 0; |         $this->streamFileLength = 0; | ||||||
| 	} |     } | ||||||
|      |      | ||||||
| 	public function addStreamData($data) { |     public function addStreamData($data) { | ||||||
| 		$length = gzwrite($this->streamData, $data, strlen($data)); |         $length = gzwrite($this->streamData, $data, strlen($data)); | ||||||
| 		if ($length != strlen($data)) { |         if ($length != strlen($data)) { | ||||||
| 			print "<p>Length mismatch</p>\n"; |             print "<p>Length mismatch</p>\n"; | ||||||
| 		} |         } | ||||||
| 		$this->streamFileLength += $length; |         $this->streamFileLength += $length; | ||||||
| 		return $length; |         return $length; | ||||||
| 	} |     } | ||||||
|      |      | ||||||
| 	/** |     /** | ||||||
| 	 * Close the current stream. |      * Close the current stream. | ||||||
| 	 */ |      */ | ||||||
| 	public function closeStream() { |     public function closeStream() { | ||||||
| 		if ($this->isFinalized || strlen($this->streamFilePath) == 0) { |         if ($this->isFinalized || strlen($this->streamFilePath) == 0) { | ||||||
| 			return; |             return; | ||||||
| 		} |         } | ||||||
|          |          | ||||||
| 		fflush($this->streamData); |         fflush($this->streamData); | ||||||
| 		gzclose($this->streamData); |         gzclose($this->streamData); | ||||||
|          |          | ||||||
| 		$gzType = "\x08\x00"; // Compression type 8 = deflate |         $gzType = "\x08\x00"; // Compression type 8 = deflate | ||||||
| 		$gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression. |         $gpFlags = "\x02\x00"; // General Purpose bit flags for compression type 8 it is: 0=Normal, 1=Maximum, 2=Fast, 3=super fast compression. | ||||||
|  |  | ||||||
| 		$file_handle = fopen($this->streamFile, "rb"); |         $file_handle = fopen($this->streamFile, "rb"); | ||||||
| 		$stats = fstat($file_handle); |         $stats = fstat($file_handle); | ||||||
| 		$eof = $stats['size']; |         $eof = $stats['size']; | ||||||
|          |          | ||||||
| 		fseek($file_handle, $eof-8); |         fseek($file_handle, $eof-8); | ||||||
| 		$fileCRC32 = fread($file_handle, 4); |         $fileCRC32 = fread($file_handle, 4); | ||||||
| 		$dataLength = $this->streamFileLength;//$gzl[1]; |         $dataLength = $this->streamFileLength;//$gzl[1]; | ||||||
|  |  | ||||||
| 		$gzLength = $eof-10; |         $gzLength = $eof-10; | ||||||
| 		$eof -= 9; |         $eof -= 9; | ||||||
|          |          | ||||||
| 		fseek($file_handle, 10); |         fseek($file_handle, 10); | ||||||
|  |  | ||||||
| 		$this->buildZipEntry($this->streamFilePath, $this->streamFileComment, $gpFlags, $gzType, $this->streamTimestamp, $fileCRC32, $gzLength, $dataLength, 32); |         $this->buildZipEntry($this->streamFilePath, $this->streamFileComment, $gpFlags, $gzType, $this->streamTimestamp, $fileCRC32, $gzLength, $dataLength, 32); | ||||||
| 		while(!feof($file_handle)) { |         while(!feof($file_handle)) { | ||||||
| 		    fwrite($this->zipFile, fread($file_handle, $this->streamChunkSize)); |             fwrite($this->zipFile, fread($file_handle, $this->streamChunkSize)); | ||||||
| 		}  |         }  | ||||||
|          |          | ||||||
| 		unlink($this->streamFile); |         unlink($this->streamFile); | ||||||
| 		$this->streamFile = null; |         $this->streamFile = null; | ||||||
| 		$this->streamData = null; |         $this->streamData = null; | ||||||
| 		$this->streamFilePath = null; |         $this->streamFilePath = null; | ||||||
| 		$this->streamTimestamp = null; |         $this->streamTimestamp = null; | ||||||
| 		$this->streamFileComment = null; |         $this->streamFileComment = null; | ||||||
| 		$this->streamFileLength = 0; |         $this->streamFileLength = 0; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Close the archive. |      * Close the archive. | ||||||
| 	 * A closed archive can no longer have new files added to it. |      * A closed archive can no longer have new files added to it. | ||||||
| 	 */ |      */ | ||||||
| 	public function finalize() { |     public function finalize() { | ||||||
| 		if(!$this->isFinalized) { |         if(!$this->isFinalized) { | ||||||
| 			if (strlen($this->streamFilePath) > 0) { |             if (strlen($this->streamFilePath) > 0) { | ||||||
| 				$this->closeStream(); |                 $this->closeStream(); | ||||||
| 			} |             } | ||||||
| 			$cd = implode("", $this->cdRec); |             $cd = implode("", $this->cdRec); | ||||||
|              |              | ||||||
| 			$cdRec = $cd . $this->endOfCentralDirectory |             $cdRec = $cd . $this->endOfCentralDirectory | ||||||
| 					. pack("v", sizeof($this->cdRec)) |                     . pack("v", sizeof($this->cdRec)) | ||||||
| 					. pack("v", sizeof($this->cdRec)) |                     . pack("v", sizeof($this->cdRec)) | ||||||
| 					. pack("V", strlen($cd)) |                     . pack("V", strlen($cd)) | ||||||
| 					. pack("V", $this->offset);  |                     . pack("V", $this->offset);  | ||||||
| 			if (!is_null($this->zipComment)) { |             if (!is_null($this->zipComment)) { | ||||||
| 				$cdRec .= pack("v", strlen($this->zipComment)) . $this->zipComment; |                 $cdRec .= pack("v", strlen($this->zipComment)) . $this->zipComment; | ||||||
| 			} else { |             } else { | ||||||
| 				$cdRec .= "\x00\x00"; |                 $cdRec .= "\x00\x00"; | ||||||
| 			} |             } | ||||||
|                      |                      | ||||||
| 			if (is_null($this->zipFile)) { |             if (is_null($this->zipFile)) { | ||||||
| 				$this->zipData .= $cdRec; |                 $this->zipData .= $cdRec; | ||||||
| 			} else { |             } else { | ||||||
| 				fwrite($this->zipFile, $cdRec); |                 fwrite($this->zipFile, $cdRec); | ||||||
| 				fflush($this->zipFile); |                 fflush($this->zipFile); | ||||||
| 			} |             } | ||||||
| 			$this->isFinalized = true; |             $this->isFinalized = true; | ||||||
| 			$cd = null; |             $cd = null; | ||||||
| 			$this->cdRec = null; |             $this->cdRec = null; | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Get the handle ressource for the archive zip file. |      * Get the handle ressource for the archive zip file. | ||||||
| 	 * If the zip haven't been finalized yet, this will cause it to become finalized |      * If the zip haven't been finalized yet, this will cause it to become finalized | ||||||
| 	 * |      * | ||||||
| 	 * @return zip file handle |      * @return zip file handle | ||||||
| 	 */ |      */ | ||||||
| 	public function getZipFile() { |     public function getZipFile() { | ||||||
| 		if(!$this->isFinalized) { |         if(!$this->isFinalized) { | ||||||
| 			$this->finalize(); |             $this->finalize(); | ||||||
| 		} |         } | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			$this->zipFile = tmpfile(); |             $this->zipFile = tmpfile(); | ||||||
| 			fwrite($this->zipFile, $this->zipData); |             fwrite($this->zipFile, $this->zipData); | ||||||
| 			$this->zipData = null; |             $this->zipData = null; | ||||||
| 		} |         } | ||||||
| 		rewind($this->zipFile); |         rewind($this->zipFile); | ||||||
| 		return $this->zipFile; |         return $this->zipFile; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Get the zip file contents |      * Get the zip file contents | ||||||
| 	 * If the zip haven't been finalized yet, this will cause it to become finalized |      * If the zip haven't been finalized yet, this will cause it to become finalized | ||||||
| 	 * |      * | ||||||
| 	 * @return zip data |      * @return zip data | ||||||
| 	 */ |      */ | ||||||
| 	public function getZipData() { |     public function getZipData() { | ||||||
| 		if(!$this->isFinalized) { |         if(!$this->isFinalized) { | ||||||
| 			$this->finalize(); |             $this->finalize(); | ||||||
| 		} |         } | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			return $this->zipData; |             return $this->zipData; | ||||||
| 		} else { |         } else { | ||||||
| 			rewind($this->zipFile); |             rewind($this->zipFile); | ||||||
| 			$filestat = fstat($this->zipFile); |             $filestat = fstat($this->zipFile); | ||||||
| 			return fread($this->zipFile, $filestat['size']); |             return fread($this->zipFile, $filestat['size']); | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Send the archive as a zip download |      * Send the archive as a zip download | ||||||
| 	 * |      * | ||||||
| 	 * @param String $fileName The name of the Zip archive, ie. "archive.zip". |      * @param String $fileName The name of the Zip archive, ie. "archive.zip". | ||||||
| 	 * @return void |      * @return void | ||||||
| 	 */ |      */ | ||||||
| 	function sendZip($fileName) { |     function sendZip($fileName) { | ||||||
| 		if(!$this->isFinalized) { |         if(!$this->isFinalized) { | ||||||
| 			$this->finalize(); |             $this->finalize(); | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		if (!headers_sent($headerFile, $headerLine) or die("<p><strong>Error:</strong> Unable to send file $fileName. HTML Headers have already been sent from <strong>$headerFile</strong> in line <strong>$headerLine</strong></p>")) { |         if (!headers_sent($headerFile, $headerLine) or die("<p><strong>Error:</strong> Unable to send file $fileName. HTML Headers have already been sent from <strong>$headerFile</strong> in line <strong>$headerLine</strong></p>")) { | ||||||
| 			if (ob_get_contents() === false or die("\n<p><strong>Error:</strong> Unable to send file <strong>$fileName.epub</strong>. Output buffer contains the following text (typically warnings or errors):<br>" . ob_get_contents() . "</p>")) { |             if (ob_get_contents() === false or die("\n<p><strong>Error:</strong> Unable to send file <strong>$fileName.epub</strong>. Output buffer contains the following text (typically warnings or errors):<br>" . ob_get_contents() . "</p>")) { | ||||||
| 				if (ini_get('zlib.output_compression')) { |                 if (ini_get('zlib.output_compression')) { | ||||||
| 					ini_set('zlib.output_compression', 'Off'); |                     ini_set('zlib.output_compression', 'Off'); | ||||||
| 				} |                 } | ||||||
|  |  | ||||||
| 				header('Pragma: public'); |                 header('Pragma: public'); | ||||||
| 				header("Last-Modified: " . gmdate("D, d M Y H:i:s T")); |                 header("Last-Modified: " . gmdate("D, d M Y H:i:s T")); | ||||||
| 				header("Expires: 0"); |                 header("Expires: 0"); | ||||||
| 				header("Accept-Ranges: bytes"); |                 header("Accept-Ranges: bytes"); | ||||||
| 				header("Connection: close"); |                 header("Connection: close"); | ||||||
| 				header("Content-Type: application/zip"); |                 header("Content-Type: application/zip"); | ||||||
| 				header('Content-Disposition: attachment; filename="' . $fileName . '";' ); |                 header('Content-Disposition: attachment; filename="' . $fileName . '";' ); | ||||||
| 				header("Content-Transfer-Encoding: binary"); |                 header("Content-Transfer-Encoding: binary"); | ||||||
| 				header("Content-Length: ". $this->getArchiveSize()); |                 header("Content-Length: ". $this->getArchiveSize()); | ||||||
|  |  | ||||||
| 				if (is_null($this->zipFile)) { |                 if (is_null($this->zipFile)) { | ||||||
| 					echo $this->zipData; |                     echo $this->zipData; | ||||||
| 				} else { |                 } else { | ||||||
| 					rewind($this->zipFile); |                     rewind($this->zipFile); | ||||||
|  |  | ||||||
| 					while(!feof($this->zipFile)) { |                     while(!feof($this->zipFile)) { | ||||||
| 					    echo fread($this->zipFile, $this->streamChunkSize); |                         echo fread($this->zipFile, $this->streamChunkSize); | ||||||
| 					}  |                     }  | ||||||
| 				} |                 } | ||||||
| 			} |             } | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|      |      | ||||||
| 	public function getArchiveSize() { |     public function getArchiveSize() { | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			return strlen($this->zipData); |             return strlen($this->zipData); | ||||||
| 		} |         } | ||||||
| 		$filestat = fstat($this->zipFile); |         $filestat = fstat($this->zipFile); | ||||||
| 		return $filestat['size']; |         return $filestat['size']; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Calculate the 2 byte dostime used in the zip entries. |      * Calculate the 2 byte dostime used in the zip entries. | ||||||
| 	 * |      * | ||||||
| 	 * @param int $timestamp |      * @param int $timestamp | ||||||
| 	 * @return 2-byte encoded DOS Date |      * @return 2-byte encoded DOS Date | ||||||
| 	 */ |      */ | ||||||
| 	private function getDosTime($timestamp = 0) { |     private function getDosTime($timestamp = 0) { | ||||||
| 		$timestamp = (int)$timestamp; |         $timestamp = (int)$timestamp; | ||||||
| 		$date = ($timestamp == 0 ? getdate() : getDate($timestamp)); |         $date = ($timestamp == 0 ? getdate() : getDate($timestamp)); | ||||||
| 		if ($date["year"] >= 1980) { |         if ($date["year"] >= 1980) { | ||||||
| 			return pack("V", (($date["mday"] + ($date["mon"] << 5) + (($date["year"]-1980) << 9)) << 16) | |             return pack("V", (($date["mday"] + ($date["mon"] << 5) + (($date["year"]-1980) << 9)) << 16) | | ||||||
| 				(($date["seconds"] >> 1) + ($date["minutes"] << 5) + ($date["hours"] << 11))); |                 (($date["seconds"] >> 1) + ($date["minutes"] << 5) + ($date["hours"] << 11))); | ||||||
| 		} |         } | ||||||
| 		return "\x00\x00\x00\x00"; |         return "\x00\x00\x00\x00"; | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	/** |     /** | ||||||
| 	 * Build the Zip file structures |      * Build the Zip file structures | ||||||
| 	 *  |      *  | ||||||
| 	 * @param unknown_type $filePath |      * @param unknown_type $filePath | ||||||
| 	 * @param unknown_type $fileComment |      * @param unknown_type $fileComment | ||||||
| 	 * @param unknown_type $gpFlags |      * @param unknown_type $gpFlags | ||||||
| 	 * @param unknown_type $gzType |      * @param unknown_type $gzType | ||||||
| 	 * @param unknown_type $timestamp |      * @param unknown_type $timestamp | ||||||
| 	 * @param unknown_type $fileCRC32 |      * @param unknown_type $fileCRC32 | ||||||
| 	 * @param unknown_type $gzLength |      * @param unknown_type $gzLength | ||||||
| 	 * @param unknown_type $dataLength |      * @param unknown_type $dataLength | ||||||
| 	 * @param integer $extFileAttr 16 for directories, 32 for files. |      * @param integer $extFileAttr 16 for directories, 32 for files. | ||||||
| 	 */ |      */ | ||||||
| 	private function buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, $extFileAttr) { |     private function buildZipEntry($filePath, $fileComment, $gpFlags, $gzType, $timestamp, $fileCRC32, $gzLength, $dataLength, $extFileAttr) { | ||||||
| 		$filePath = str_replace("\\", "/", $filePath); |         $filePath = str_replace("\\", "/", $filePath); | ||||||
| 		$fileCommentLength = (is_null($fileComment) ? 0 : strlen($fileComment)); |         $fileCommentLength = (is_null($fileComment) ? 0 : strlen($fileComment)); | ||||||
| 		$dosTime = $this->getDosTime($timestamp); |         $dosTime = $this->getDosTime($timestamp); | ||||||
|          |          | ||||||
| 		$zipEntry  = $this->localFileHeader; |         $zipEntry  = $this->localFileHeader; | ||||||
| 		$zipEntry .= "\x14\x00"; // Version needed to extract |         $zipEntry .= "\x14\x00"; // Version needed to extract | ||||||
| 		$zipEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32; |         $zipEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32; | ||||||
| 		$zipEntry .= pack("VV", $gzLength, $dataLength); |         $zipEntry .= pack("VV", $gzLength, $dataLength); | ||||||
| 		$zipEntry .= pack("v", strlen($filePath) ); // File name length |         $zipEntry .= pack("v", strlen($filePath) ); // File name length | ||||||
| 		$zipEntry .= "\x00\x00"; // Extra field length |         $zipEntry .= "\x00\x00"; // Extra field length | ||||||
| 		$zipEntry .= $filePath; // FileName . Extra field |         $zipEntry .= $filePath; // FileName . Extra field | ||||||
|  |  | ||||||
| 		if (is_null($this->zipFile)) { |         if (is_null($this->zipFile)) { | ||||||
| 			$this->zipData .= $zipEntry; |             $this->zipData .= $zipEntry; | ||||||
| 		} else { |         } else { | ||||||
| 			fwrite($this->zipFile, $zipEntry); |             fwrite($this->zipFile, $zipEntry); | ||||||
| 		} |         } | ||||||
|                  |                  | ||||||
| 		$cdEntry  = $this->centralFileHeader; |         $cdEntry  = $this->centralFileHeader; | ||||||
| 		$cdEntry .= "\x00\x00"; // Made By Version |         $cdEntry .= "\x00\x00"; // Made By Version | ||||||
| 		$cdEntry .= "\x14\x00"; // Version Needed to extract |         $cdEntry .= "\x14\x00"; // Version Needed to extract | ||||||
| 		$cdEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32; |         $cdEntry .= $gpFlags . $gzType . $dosTime. $fileCRC32; | ||||||
| 		$cdEntry .= pack("VV", $gzLength, $dataLength); |         $cdEntry .= pack("VV", $gzLength, $dataLength); | ||||||
| 		$cdEntry .= pack("v", strlen($filePath)); // Filename length |         $cdEntry .= pack("v", strlen($filePath)); // Filename length | ||||||
| 		$cdEntry .= "\x00\x00"; // Extra field length |         $cdEntry .= "\x00\x00"; // Extra field length | ||||||
| 		$cdEntry .= pack("v", $fileCommentLength); // File comment length |         $cdEntry .= pack("v", $fileCommentLength); // File comment length | ||||||
| 		$cdEntry .= "\x00\x00"; // Disk number start |         $cdEntry .= "\x00\x00"; // Disk number start | ||||||
| 		$cdEntry .= "\x00\x00"; // internal file attributes |         $cdEntry .= "\x00\x00"; // internal file attributes | ||||||
| 		$cdEntry .= pack("V", $extFileAttr ); // External file attributes |         $cdEntry .= pack("V", $extFileAttr ); // External file attributes | ||||||
| 		$cdEntry .= pack("V", $this->offset ); // Relative offset of local header |         $cdEntry .= pack("V", $this->offset ); // Relative offset of local header | ||||||
| 		$cdEntry .= $filePath; // FileName . Extra field |         $cdEntry .= $filePath; // FileName . Extra field | ||||||
| 		if (!is_null($fileComment)) { |         if (!is_null($fileComment)) { | ||||||
| 			$cdEntry .= $fileComment; // Comment |             $cdEntry .= $fileComment; // Comment | ||||||
| 		} |         } | ||||||
|  |  | ||||||
| 		$this->cdRec[] = $cdEntry; |         $this->cdRec[] = $cdEntry; | ||||||
| 		$this->offset += strlen($zipEntry) + $gzLength; |         $this->offset += strlen($zipEntry) + $gzLength; | ||||||
| 	} |     } | ||||||
| } | } | ||||||
| ?> |  | ||||||
| @@ -23,8 +23,6 @@ else if (!isset($_SESSION['lang'])) { | |||||||
| } | } | ||||||
| $lang = $_SESSION['lang']; | $lang = $_SESSION['lang']; | ||||||
|  |  | ||||||
| require __DIR__ . '/inc/zeichen.php'; |  | ||||||
|  |  | ||||||
| if (empty($filename = trim($_GET['fnam'], " ,./"))) { | if (empty($filename = trim($_GET['fnam'], " ,./"))) { | ||||||
|     echo "Error: Invalid file name"; |     echo "Error: Invalid file name"; | ||||||
|     exit; |     exit; | ||||||
| @@ -66,7 +64,6 @@ while ($zeile = fgetcsv($fp, 100000, ';')) { | |||||||
|         if ($inhalt[$y][$x] == '') $inhalt[$y][$x] = 'ERSATZ'; |         if ($inhalt[$y][$x] == '') $inhalt[$y][$x] = 'ERSATZ'; | ||||||
|  |  | ||||||
|         $record_node->appendChild(createTextDomElement($xmlDoc, trim($inhalt[1][$x]), trim($inhalt[$y][$x]))); |         $record_node->appendChild(createTextDomElement($xmlDoc, trim($inhalt[1][$x]), trim($inhalt[$y][$x]))); | ||||||
|         # $somecontent = $somecontent . '<' . tagify(transform($inhalt[1][$x])) . '>' . (($inhalt[$y][$x])) . '</' . tagify(transform($inhalt[1][$x])) . '>' . "\n"; //für ungarn sonst weg ////////////////////////////////////////////////////////////// |  | ||||||
|  |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user