PHP: Função para tratar nome de um arquivo na hora de fazer upload

    Obrigado! você é a 386ª pessoa que visita este post.

    Olá pessoal,

    esta função pode ser muito útil na hora de fazer upload de arquivos.

    Imagine que o arquivo a ser enviado tenha o seguinte nome Brazil.Brasília animação.jpg (com acentuação, cedilha e espaços); ao utilizar a função abaixo, o nome ficará assim: brazil-brasilia-animacao.jpg.

    <?
    function tratar_arquivo_upload($string){
       // pegando a extensao do arquivo
       $partes 		= explode(".", $string);
       $extensao 		= $partes[count($partes)-1];	
       // somente o nome do arquivo
       $nome			= preg_replace('/\.[^.]*$/', '', $string);	
       // removendo simbolos, acentos etc
       $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýýþÿŔŕ?';
       $b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuuyybyRr-';
       $nome = strtr($nome, utf8_decode($a), $b);
       $nome = str_replace(".","-",$nome);
       $nome = preg_replace( "/[^0-9a-zA-Z\.]+/",'-',$nome);
       return utf8_decode(strtolower($nome.".".$extensao));
    }
     
    $filename = tratar_arquivo_upload(utf8_decode($file['name']));
    ?>

    Related posts:

    1. PHP: Função para excluir arquivo
    2. JavaScript: getElementById + CSS + Flash
    3. PHP: Obtendo o nome do arquivo
    4. PHP: Obtendo todos os dados de um formulário
    5. Flash: Fechando uma animação