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));
}
$file = $_FILES['arquivo'];
$filename = tratar_arquivo_upload(utf8_decode($file['name']));
?>