TYPO3 CMS  TYPO3_7-6
CompressionUtility.php
Go to the documentation of this file.
1 <?php
3 
4 /*
5  * This file is part of the TYPO3 CMS project.
6  *
7  * It is free software; you can redistribute it and/or modify it under
8  * the terms of the GNU General Public License, either version 2
9  * of the License, or any later version.
10  *
11  * For the full copyright and license information, please read the
12  * LICENSE.txt file that was distributed with this source code.
13  *
14  * The TYPO3 project - inspiring people to share!
15  */
16 
22 {
30  protected $contentLength = 0;
31 
42  public function compressionOutputHandler($outputBuffer, $mode)
43  {
44  // Compress the content
45  $outputBuffer = ob_gzhandler($outputBuffer, $mode);
46  if ($outputBuffer !== false) {
47  // Save compressed size
48  $this->contentLength += strlen($outputBuffer);
49  // Check if this was the last content chunk
50  if (0 != ($mode & PHP_OUTPUT_HANDLER_END)) {
51  // Check if we have content-length header
52  foreach (headers_list() as $header) {
53  if (0 == strncasecmp('Content-length:', $header, 15)) {
54  header('Content-length: ' . $this->contentLength);
55  break;
56  }
57  }
58  }
59  }
60  return $outputBuffer;
61  }
62 }