HEX
Server: LiteSpeed
System: Linux cp01.bhostbrasil.com.br 5.14.0-611.16.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Dec 22 03:40:39 EST 2025 x86_64
User: onlyfibr (1083)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/onlyfibr/public_html/models/model_arquivos_imagens.php
<?php

Class model_arquivos_imagens{

	public function calcula_altura_jpg($imagem, $largura){
		$source = imagecreatefromjpeg($imagem); 
		$imagex = imagesx($source);
		$imagey = imagesy($source);
		return round(($largura * $imagey) / $imagex);
	}
	

	public function filtro($arquivo){

		if($arquivo['tmp_name']){
			if(substr($arquivo['name'],-3)=="exe" || 
					substr($arquivo['name'],-3)=="php" || 
					substr($arquivo['name'],-4)=="php3" || 
					substr($arquivo['name'],-4)=="php4"){
				return false;
			} else {
				return true;
			}
		} else {
			return false;
		}
		
	}
	
	private function removeAcentos($value){
 		
		$from = "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ";
        $to = "aaaaeeiooouucAAAAEEIOOOUUC";
		
        $keys = array();
        $values = array();
        preg_match_all('/./u', $from, $keys);
        preg_match_all('/./u', $to, $values);
        $mapping = array_combine($keys[0], $values[0]);
        $value = strtr($value, $mapping);
       	$value = preg_replace("[^A-Za-zíé0-9]", '-', $value);
        return strtolower($value);
	}
	
	public function trata_nome($nome){

		//remove acentos
		$nome_arquivo = $this->removeAcentos($nome);

		$extensao = $this->extensao($nome);
		
		//remove caracteres indesejados
		$nome_arquivo = str_replace(array("?", ",", "+", "'", "/", ")", "(", "&", "%", "#", "@", "!", "=", ">", "<", ";", ":", "|", "*", "$", "$extensao"), "", $nome_arquivo);
		//coloca ifen para separar palavras
		$nome_arquivo = str_replace(array(".", " ", "_", "+"), "-", $nome_arquivo);
		//certifica que não tem ifens repetidos
		$nome_arquivo = preg_replace('/(.)\1+/', '$1', $nome_arquivo);
		//coloca data ao final para não repetir
		$nome_arquivo = $nome_arquivo.'['.date('d-m-y').']['.date('H-i-s').']';

		return $nome_arquivo.".".$extensao;
	}
	
	
	public function trata_nome_sem_ext($nome){
		 
		//remove acentos
		$nome_arquivo = $this->removeAcentos($nome);
		
		//remove caracteres indesejados
		$nome_arquivo = str_replace(array("?", "", ",", "+", "'", "/", ")", "(", "&", "%", "#", "@", "!", "=", ">", "<", ";", ":", "|", "*", "$"), "", $nome_arquivo);
		$nome_arquivo = str_replace('"', '', $nome_arquivo);
		//coloca ifen para separar palavras
		$nome_arquivo = str_replace(array(".", " ", "_", "+"), "-", $nome_arquivo);
		//certifica que não tem ifens repetidos
		$nome_arquivo = preg_replace('/(.)\1+/', '$1', $nome_arquivo);
		//coloca data ao final para não repetir
		$nome_arquivo = $nome_arquivo.'['.date('d-m-y').']['.date('H-i-s').']';
		
		return $nome_arquivo;
	}
	
	
	public function extensao($nome){
		$array = explode(".", $nome);
		$extensao = end($array);
		return $extensao;
	}
	
	
	public function jpg($img, $max_x, $max_y, $nome_foto) {
		
		//pega o tamanho da imagem ($original_x, $original_y)
		list($width, $height) = getimagesize($img);
		
		$original_x = $width;
		$original_y = $height;

		if(($max_x < $original_x) or ($original_y > $max_y)){
			        
						// se a largura for maior que altura
						if($original_x > $original_y) {
							$porcentagem = (100 * $max_x) / $original_x;
						} else {
							$porcentagem = (100 * $max_y) / $original_y;
						}
						
						$tamanho_x = $original_x * ($porcentagem / 100);
						$tamanho_y = $original_y * ($porcentagem / 100);
						
						$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
						$image   = imagecreatefromjpeg($img);
						
						imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
						
						return imagejpeg($image_p, $nome_foto, 100);
						
		} else {

			return copy($img, $nome_foto);

		}
	}

	

}