A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					173 lines
				
				6.5 KiB
			
		
		
			
		
	
	
					173 lines
				
				6.5 KiB
			| 
								 
											7 years ago
										 
									 | 
							
								<?php 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ini_set("display_erros", 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$utilize_cache = (defined('CACHE_IMG'))? CACHE_IMG : false;	// active cache store and view. Optimize processor use
							 | 
						||
| 
								 | 
							
								$cache_path    = "css-cache"; // where to store the generated re-sized images. Specify from your document root!
							 | 
						||
| 
								 | 
							
								$Imagick_compress = (defined('USE_IMAGICK'))? USE_IMAGICK : false;	// use Imagick PHP module. If false use GD.
							 | 
						||
| 
								 | 
							
								$PNG_compress_imagick  = (defined('CACHE_PNG_COMPRESS'))? CACHE_PNG_COMPRESS*10 : 99;	//Level of compress PNG file. Values of 0-100 also 100 is a hightest value of compression (and uses more CPU to create).
							 | 
						||
| 
								 | 
							
								$PNG_compress_GD = (defined('CACHE_PNG_COMPRESS'))? CACHE_PNG_COMPRESS : 9;	//Level of compress PNG file. Values of 0-9 also 9 is a hightest value of compression (and uses more CPU to create).
							 | 
						||
| 
								 | 
							
								$JPG_quality   = (defined('CACHE_JPG_COMPRESS'))? CACHE_JPG_COMPRESS : 76; //Level of quality JPEG file. Values of 0-100 also 100 is a hightest value of quality and 0 is low quality.
							 | 
						||
| 
								 | 
							
								$cache_days    = (defined('CACHE_DAYS'))? CACHE_DAYS : 14;		//Days of image in disk cache storage, after is re-created new file in cache.
							 | 
						||
| 
								 | 
							
								$reset_cache   = (defined('RESET_CACHE'))? RESET_CACHE : false;	//reset cache. Also aplicable in active.php?reset=true access browser.
							 | 
						||
| 
								 | 
							
								$browser_cache = 60*60*24*7; // How long the BROWSER cache should last (seconds, minutes, hours, days. 7days by default)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								session_start();
							 | 
						||
| 
								 | 
							
								if(isset($_SESSION['reset'])) {
							 | 
						||
| 
								 | 
							
									$reset_cache = ($_SESSION['reset'] == 'true') ? true : false;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//$document_root  = str_replace('system/ecompress', '', __DIR__);
							 | 
						||
| 
								 | 
							
								/*$document_root  = $_SERVER['DOCUMENT_ROOT'];
							 | 
						||
| 
								 | 
							
								$requested_uri  = parse_url(urldecode($_SERVER['REQUEST_URI']), PHP_URL_PATH);
							 | 
						||
| 
								 | 
							
								$requested_file = basename($requested_uri);
							 | 
						||
| 
								 | 
							
								$source_file    = $document_root.$requested_uri;*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$document_root  = (defined('DIR_CACHE'))? substr(DIR_CACHE, 0, -1) : $_SERVER['DOCUMENT_ROOT'];
							 | 
						||
| 
								 | 
							
								$requested_uri  = parse_url(urldecode($_SERVER['REQUEST_URI']), PHP_URL_PATH);
							 | 
						||
| 
								 | 
							
								$requested_file = basename($requested_uri);
							 | 
						||
| 
								 | 
							
								$source_file    = (defined('DIR_PUBLIC'))? substr(DIR_PUBLIC, 0, -1).$requested_uri : $document_root.$requested_uri;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//var_dump($source_file);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$extension = strtolower(pathinfo($source_file, PATHINFO_EXTENSION));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$cache_file = $document_root."/$cache_path/$extension".$requested_uri;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (in_array($extension, array('png', 'jpeg'))) {
							 | 
						||
| 
								 | 
							
								    header("Content-Type: image/".$extension);
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    header("Content-Type: image/jpeg");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  header("Cache-Control: private, max-age=".$browser_cache);
							 | 
						||
| 
								 | 
							
								  header('Expires: '.gmdate('D, d M Y H:i:s', time()+$browser_cache).' GMT');
							 | 
						||
| 
								 | 
							
								  //header('Content-Length: '.filesize($filename));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (file_exists($cache_file)) {
							 | 
						||
| 
								 | 
							
									$buffer2 = true;
							 | 
						||
| 
								 | 
							
									$fil = "1";
							 | 
						||
| 
								 | 
							
									$date_cache_file = filemtime($cache_file);
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								}  else {
							 | 
						||
| 
								 | 
							
									$buffer2=false;
							 | 
						||
| 
								 | 
							
									//$buffer = file_get_contents($source_file);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if($buffer2 != false and $date_cache_file > strtotime("-$cache_days days") and $utilize_cache == true and $reset_cache == false) {
							 | 
						||
| 
								 | 
							
									header('Content-Length: '.filesize($cache_file));
							 | 
						||
| 
								 | 
							
									readfile($cache_file);
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								} else {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if($utilize_cache == true) {
							 | 
						||
| 
								 | 
							
										if (!is_dir("$document_root/$cache_path")) { // no
							 | 
						||
| 
								 | 
							
										  if (!mkdir("$document_root/$cache_path", 0755, true)) { // so make it
							 | 
						||
| 
								 | 
							
											if (!is_dir("$document_root/$cache_path")) { // check again to protect against race conditions
							 | 
						||
| 
								 | 
							
											  // uh-oh, failed to make that directory
							 | 
						||
| 
								 | 
							
											  echo("Failed to create cache directory at: $document_root/$cache_path");
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										  }
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if (!is_dir("$document_root/$cache_path/$extension")) { // no
							 | 
						||
| 
								 | 
							
										  if (!mkdir("$document_root/$cache_path/$extension", 0755, true)) { // so make it
							 | 
						||
| 
								 | 
							
											if (!is_dir("$document_root/$cache_path/$extension")) { // check again to protect against race conditions
							 | 
						||
| 
								 | 
							
											  // uh-oh, failed to make that directory
							 | 
						||
| 
								 | 
							
											  echo("Failed to create cache directory at: $document_root/$cache_path");
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										  }
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if($utilize_cache == true) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										$parts = explode('/', $cache_file);
							 | 
						||
| 
								 | 
							
											$file = array_pop($parts);
							 | 
						||
| 
								 | 
							
											$dir = '';
							 | 
						||
| 
								 | 
							
											foreach($parts as $part) {
							 | 
						||
| 
								 | 
							
												if(!is_dir($dir .= "/$part")) mkdir($dir, 0755, true);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											//file_put_contents($cache_file, $buffer);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (in_array($extension, array('png'))) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if($utilize_cache == true) {
							 | 
						||
| 
								 | 
							
											if($Imagick_compress == true) {
							 | 
						||
| 
								 | 
							
												$image = new Imagick($source_file);
							 | 
						||
| 
								 | 
							
												$image->setImageFormat("png");
							 | 
						||
| 
								 | 
							
												$image->setImageCompression(Imagick::COMPRESSION_UNDEFINED);
							 | 
						||
| 
								 | 
							
												$image->setImageCompressionQuality($PNG_compress_imagick);
							 | 
						||
| 
								 | 
							
												$image->stripImage();
							 | 
						||
| 
								 | 
							
												$image->writeImage($cache_file);
							 | 
						||
| 
								 | 
							
												header('Content-Length: '.filesize($cache_file));
							 | 
						||
| 
								 | 
							
												echo $image;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$imagemPNG = imagecreatefrompng($source_file) or die("Não foi possível inicializar uma nova imagem");
							 | 
						||
| 
								 | 
							
												imagealphablending($imagemPNG, false);
							 | 
						||
| 
								 | 
							
												imagesavealpha($imagemPNG, true);
							 | 
						||
| 
								 | 
							
												imagepng($imagemPNG, $cache_file, $PNG_compress_GD);
							 | 
						||
| 
								 | 
							
												header('Content-Length: '.filesize($cache_file));
							 | 
						||
| 
								 | 
							
												readfile($cache_file);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											if($Imagick_compress == true) {
							 | 
						||
| 
								 | 
							
												$image = new Imagick($source_file);
							 | 
						||
| 
								 | 
							
												//$image->setImageFormat("png");
							 | 
						||
| 
								 | 
							
												$image->setImageCompression(Imagick::COMPRESSION_UNDEFINED);
							 | 
						||
| 
								 | 
							
												$image->setImageCompressionQuality($PNG_compress_imagick);
							 | 
						||
| 
								 | 
							
												$image->stripImage();
							 | 
						||
| 
								 | 
							
												echo $image;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$imagemPNG = imagecreatefrompng($source_file) or die("Não foi possível inicializar uma nova imagem");
							 | 
						||
| 
								 | 
							
												imagealphablending($imagemPNG, false);
							 | 
						||
| 
								 | 
							
												imagesavealpha($imagemPNG, true);
							 | 
						||
| 
								 | 
							
												imagepng($imagemPNG, NULL, $PNG_compress_GD);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// Liberar memória
							 | 
						||
| 
								 | 
							
										imagedestroy($imagemPNG);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									if (in_array($extension, array('jpg', 'jpeg'))) {
							 | 
						||
| 
								 | 
							
										if($utilize_cache == true) {
							 | 
						||
| 
								 | 
							
											if($Imagick_compress == true) {
							 | 
						||
| 
								 | 
							
												$image = new Imagick($source_file);
							 | 
						||
| 
								 | 
							
												//$image->setImageFormat("jpeg");
							 | 
						||
| 
								 | 
							
												$image->setImageCompression(Imagick::COMPRESSION_LOSSLESSJPEG);
							 | 
						||
| 
								 | 
							
												$image->setImageCompressionQuality($JPG_quality);
							 | 
						||
| 
								 | 
							
												$image->stripImage();
							 | 
						||
| 
								 | 
							
												$image->writeImage($cache_file);
							 | 
						||
| 
								 | 
							
												header('Content-Length: '.filesize($cache_file));
							 | 
						||
| 
								 | 
							
												echo $image;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$imagemJPG = imagecreatefromjpeg($source_file) or die("Não foi possível inicializar uma nova imagem");
							 | 
						||
| 
								 | 
							
												imagejpeg($imagemJPG, $cache_file, $JPG_quality);
							 | 
						||
| 
								 | 
							
												header('Content-Length: '.filesize($cache_file));
							 | 
						||
| 
								 | 
							
												readfile($cache_file);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										} else {
							 | 
						||
| 
								 | 
							
											if($Imagick_compress == true) {
							 | 
						||
| 
								 | 
							
												$image = new Imagick($source_file);
							 | 
						||
| 
								 | 
							
												//$image->setImageFormat("jpeg");
							 | 
						||
| 
								 | 
							
												$image->setImageCompression(Imagick::COMPRESSION_LOSSLESSJPEG);
							 | 
						||
| 
								 | 
							
												$image->setImageCompressionQuality($JPG_quality);
							 | 
						||
| 
								 | 
							
												$image->stripImage();
							 | 
						||
| 
								 | 
							
												echo $image;
							 | 
						||
| 
								 | 
							
											} else {
							 | 
						||
| 
								 | 
							
												$imagemJPG = imagecreatefromjpeg($source_file) or die("Não foi possível inicializar uma nova imagem");
							 | 
						||
| 
								 | 
							
												imagejpeg($imagemJPG, NULL, $JPG_quality);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										// Liberar memória
							 | 
						||
| 
								 | 
							
										imagedestroy($imagemJPG);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
									
							 |