Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

arthurcastro

Substituição de espaço por underscore (underline)

Recommended Posts

Olá! Tenho um sistema de upload de arquivos aqui mas não consigo fazer com que na hora do upload o php substitua o espaço no nome dos arquivos por (_), pois a URL ficará inválida se não tiver o underline. Estou errando em alguma coisa? Devo trocar algo?

 

A função que usei foi essa: $new_name = preg_replace('/\s+/', '_', $new_name);
Antes tentei str_replace...

Obrigado!

<?php
   if(isset($_FILES['fileUpload']))
   {
      date_default_timezone_set("Brazil/East"); //Definido timezone padrão
 
      $ext = strtolower(substr($_FILES['fileUpload']['name'],-4)); //Pegando extensão do arquivo
      $new_name = preg_replace('/\s+/', '_', $new_name);
      $new_name = date('d.m.Y' . "_-_" . 'H:i:s_-_') . ($_FILES['fileUpload']['name']); //Definido um novo nome para o arquivo
      $dir = '/home/u637554205/public_html/uploads/arquivos/'; //Diretório para uploads
 
      move_uploaded_file($_FILES['fileUpload']['tmp_name'], $dir.$new_name); //Fazer upload do arquivo
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

o replace funciona, mas você desfaz a modificação, pois passa a usar $_FILES em vez de $new_name

 

Troque esta linha:

 

$new_name = date('d.m.Y' . "_-_" . 'H:i:s_-_') . ($_FILES['fileUpload']['name']); //Definido um novo nome para o arquivo

 

por esta:

 

$new_name = date('d.m.Y' . "_-_" . 'H:i:s_-_') . $new_name; //Definido um novo nome para o arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites
 $new_name = preg_replace('/\s+/', '_', $new_name);

Você está fazendo replace em uma variável vazia.

Onde está a inicialização da variável $new_name?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei invertido...
A inicialização:

$new_name = date('d.m.Y' . "_-_" . 'H:i:s_-_') . ($_FILES['fileUpload']['name']);

Replace:

$new_name = preg_replace('/\s+/', '_', $new_name);

A variável $new_name já tem a função de renomear o arquivo adicionando o tempo que o arquivo foi enviado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.