Ir para conteúdo
Fórum Script Brasil

João Batista Filho

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre João Batista Filho

Contatos

  • Website URL
    http://
  • ICQ
    0

João Batista Filho's Achievements

0

Reputação

  1. Agente está trazendo aqui uma solução para arquivos duplicados Problema: Um membro do seu site envia imagens ou outros arquivos, mas e se alguém começar a enviar o mesmo arquivo várias vezes o que você faria, alguém poderia usar CURL para enviar centenas de arquivos iguais e prejudicar seu servidor Solução: Assim como o youtube não deixa você enviar o mesmo vídeo duas vezes você também pode proibir essa ação para qualquer arquivo enviado para seu site. Primeiro nos vamos verificar linha por linha se o arquivo enviado não é igual a outro e tudo isso com taxa de igualdade; Obs.: Muitas funções prontas do php como similar_text não foram feitas para o que estamos mostrando aqui por não suportar grande quantidade de dados e não é segura para binários Arquivos suportados: Todos os tipos NA PRÁTICA: Vamos ver na interface um pouco dos métodos usados <? interface equal_files{ /** * Erros retornados em tempo de execução do script */ const FILE_IS_NOT_ARRAY = '<strong>$File</strong> deve ser um array'; const FILE_MORE_THAN_2 = '<strong>$File</strong> Suporta a abertura de apenas dois arquivos por vez'; const FILES_NOT_EXIST = 'Um ou mais arquivos não foram encontrados'; const FILE_OPEN_FAIL = 'A abertura de um ou mais arquivos falhou'; /** * abrindo arquivos para leitura * @return handler */ public function open_handler(); /** * lendo os arquivos * @return array */ public function read_file(); /** * Verificação final de igualdade * @return integer */ public function is_equal(); /** * Fechando arquivos abertos por open_handler(); * @return null */ public function close_handler(); } ?> EXEMPLO DE USO REAL: <? require('equal_class.php'); $equal = new equal; // Pode ser qualquer arquivo, aqui vamos usar imagen $Arquivo_1 = '1.png'; $Arquivo_2 = '2.png'; $equal->File = array($Arquivo_1, $Arquivo_2); $equal->init(); if($equal->Exact > $equal->Dividido_Por2) echo 'São os mesmos arquivos com uma precisão de '. $equal->Exact_PerCent .'% de acerto'; elseif($equal->Fail > $equal->Dividido_Por2) echo 'Não são iguais por que das '. $equal->Lines .' linhas do arquivos '. $equal->Fail_PerCent .'% são diferente(s)'; // OU exemplo de upload if($equal->Exact > $equal->Dividido_Por2) move_uploaded_file($_FILES['NAME']['TEMP'], 'DESTINO'); elseif($equal->Fail > $equal->Dividido_Por2) echo 'ERRO: Você já enviou esse arquivo, tente outro'; ?> ARQUIVOS INCLUSOS: - 3 imagens para teste - equal_class.php - equal_interface.php - Exemplo.php DOWNLOAD: http://koretu.com/@joao_batista-verificand...e-precisao_5401
  2. Título: PHP Tools Versão: 1.0 Nome: PHPtools Versão: 1.0 Funcionalidade: Permitir um rápido acesso a ferramentas sem ter que reescrever tudo Por que não colocar o que precisaremos sempre em um só lugar e com isso não precisar reescrever tudo sempre Quem falou que programador não tem sua caixa de ferramentas. Agente reuniu em um só lugar alguns métodos ( já que estamos usando class ) importantes para nosso dia a dia Se você tinha dúvida em quando usar métodos estáticos ( funções estáticas ) aqui está uma aplicação CONTEÚDO: Um class tools{} foi criada com alguns métodos importantes - Manipulação de RGB pelo nome da cor - Mostrando para seus visitantes a hora de uma postagem por extenso. EX: " segundos atrás " etc. - Tratamento de texto contra SQL Injection - Convertendo caracteres - Checar se arquivos existe em servidores da web - Validar Email - Validar CEP Na prática: Nome da classe é "tools" Validando um email: $email = tools::is_email('meuemail@domain.com'); if( $email ) echo 'É um email'; else echo 'Não é um email'; Cores: Um bom uso seria na hora de criar imagens não precisar escrever em RGB e sim apenas o nome da cor echo tools::rgb('green'); // 0, 128, 0 echo tools::rgb('green', 1); // array(); $cor[0] - $cor[1] - $cor[2] 0, 128, 0 Tratando texto contra Sql Injection $meu_text_a_ser_inserido_no_bd = 'meu 'texto' `etc`; '; mysql_query("INSERT INTO `table` VALUES ('". tools::Nj($meu_text_a_ser_inserido_no_bd) ."')"); // OBS:. Nj = No Inject Vamos entender melhor observando a interface PHPtools__interface.php ( Não inclusa, mostrada aqui apenas para entendimento dos métodos ) <? interface phptools{ /** * Tratando cores RGB pelo nome * * Se o parâmetro 2 for omitido então será retornado uma string ex: 0,0,0 * * Se o parâmetro 2 não for omitido será retornado um array(0,0,0); * * @param string $color_name * @return array() ? * @return string ? * * Ex: tools::rgb('green'); // 0, 128, 0 * * Ex: $cor = tools::rgb('green', 1); // array(); $cor[0] - $cor[1] - $cor[2] * 0, 128, 0 */ static public function rgb($color_name); /** * E se você mostrar para seus visitantes uma mensagem agradável referente a data de uma determinada postagem. * * Exemplo: 1 minuto atrás, segundos atrás etc. * * A data cadastrada deve sempre ser nesse formato: date('d-M-Y|H-i-s'); com os traços e a barra exatamente como está ali * * Para usar basta chamar a função no local onde a data é mostrada ex: * * <code> * * $minha_data = '05-Apr-2012|18-40-50'; * * echo tools::timeEvents($minha_data); * * </code> * * @param string $eventDate * @return string; */ static public function timeEvents($eventDate); /** * Aqui estão algumas funções que podem salvar seu banco de ataques de SQL INJEÇÃO * USO: * $meu_text_a_ser_inserido_no_bd = 'meu 'texto' `etc`; '; * * mysql_query("INSERT INTO `table` VALUES ('". tools::Nj($meu_text_a_ser_inserido_no_bd) ."')"); * * OBS:. Nj = No Inject * * @param string $str * @return string tratada */ static public function Nj($str); /** * E quando você recebe um texto cheio de caracteres latinos entre outros, mas você que apenas letras sem acentos especiais * USO: * * $Texto = 'Eu gosto de café'; * echo tools::Az($Texto, '.'); * 'eu.gosto.de.cafe' * * echo tools::Az($Texto); * 'eu-gosto-de-cafe' * * OBS. O segundo parâmetro é opcional, quer dizer que você pode colocar o que quiser no lugar de espaços @#$& entre outros, por padrão será - * * @param string $string * @return string */ static public function Az($string); /** * Vamos ver se um arquivo existe em qualquer servidor da web * para isso vamos ver se retorna o codigo 200 * * USO: $File = 'http://site.com/arquivo.zip'; * * if(tools::is_200($File)) echo 'Existe'; * * @param string $url * @return bool */ static public function is_200($url); /** * Verificando se $Email é um email válido * * @param string $Email * * @return bool */ static public function is_email( $Email ); /** * Verificando se $Cep é um cep válido * * @param string $Cep * * @return bool */ static public function is_cep( $Cep ); } ?> DOWNLOAD: http://koretu.com/@joao_batista-reunindo-f...m-so-lugar_5400 Será que você não poderia contribuir e nos ajudar a melhorar nossa caixa de ferramentas, post ai uma função (método) útil e nos adicionaremos e mudaremos a versão para 1.1. Abraço a todos.
×
×
  • Criar Novo...