Ir para o conteúdo
pemoamsi

Uso de * em uma pesquisa de ficheiros

Mensagens Recomendadas

pemoamsi

Bom dia,

Alguém me pode dar um exemplo de como comparar uma variavel com outra com " * "?

O que eu quero é fazer uma especie de site de backup de fotos para vários discos. O programa não faz a sincronização, apenas irá inserir numa base de dados para depois outra fazer essa gestão.

<form  method="post">
 <fieldset id="discos">
<legend>Discos onde gravar</legend>
<label for="drived">D:\</label>
<input name="drived" id="drived" type="checkbox"
value="smallpox" tabindex="20" />
<br />
<label for="drivee">E:\</label>
<input name="drivee" id="drivee" type="checkbox"
value="mumps" tabindex="21" />
<br />
<label for="drivef">F:\</label>
<input name="drivef" id="drivef" type="checkbox"
value="dizziness" tabindex="22" />
<br />
<label for="drivedg">G:\ </label>
<input name="drivedg" id="drivedg" type="checkbox"
value="sneezing" tabindex="23" />
 </fieldset>
 <fieldset id="fotos">
<legend>Informação</legend>
<br />
 <div>Nome da Pasta: <input type="text" name="folder_name" > </input></div>
 <div>Tipo de Ficheiro: <input type="text" name="file_type" > </input></div>
 </fieldset>
 <p>
 <input id="submit" type="submit" value="Send" />
 </p>
</form>
<?php
 if (isset($_POST['submit']))
 {
  $folder_name = $_POST['folder_name'];
  $file_type = $_POST['file_type'];

  //Aqui apenas para a drive D:\ para ser mais "legivel"
  $path = "d:\\";
  $new_dir = $path . $folder_name;
  mkdir($new_dir, 0777);


  $search_extension = pathinfo($file_type, PATHINFO_EXTENSION);
  $search_filename = pathinfo($file_type, PATHINFO_FILENAME);


      	 while ($name_itens = readdir($path))
             {
              $iten[] = $name_itens;
             }
             sort($iten);

           foreach ($iten as $list) {
                            if (is_dir($path . $list))
                           { }
                           else
                           {   $archive[]=$list;    }
                   }
           if ($archive != "") {
              foreach($archive as $list) {
               $file_extension = pathinfo($archive, PATHINFO_EXTENSION);
               $file_filename = pathinfo($archive, PATHINFO_FILENAME);
               if ($file_extension == $search_extension && $search_filename == $file_filename)
               {
                   //Insere na base de dados
          	 }
             }


           }

 }

Ainda faltam algumas coisas, mas agora estou a tentar descobrir como faço para por exemplo, ao inserir no input o ficheiro "C:\DCMI\Paris" ele vai criar uma pasta com o nome Paris, e depois o file type serve para que eu lhe diga por exemplo DSC00*.jpg ele faça uma "busca".

Sei que isso terá de ser feito no ciclo a correr os ficheiros todos e a comparar o nome dos ficheiros com o do ficheiro, mas queria mesmo era saber como fazer para que ele faça a pesquisa com o " * ", pois o $search_filename == $file_filename reconhece apenas o nome caracter a caracter...

Editado por pemoamsi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

Podes guardar a localizacao e o nome do ficheiro numa base de dados, acho que simplificava mais a procura


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Podes guardar a localizacao e o nome do ficheiro numa base de dados, acho que simplificava mais a procura

Sim, isso já estava previsto, eu só queria saber como faço para que isto funciona "if ("DSC0001.jpg" == "DSC00*.jpg" ) { echo "works";}"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

se usares a base de dados, basta fazeres um select:

SELECT NomeFich,Localizacao FROM tblFicheiro WHERE NomeFich LIKE 'DSC00%'


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

se usares a base de dados, basta fazeres um select:

SELECT NomeFich,Localizacao FROM tblFicheiro WHERE NomeFich LIKE 'DSC00%'

A tua sugestão é criar uma tabela na base de dados, especia "temp" e depois comparo valores da base de dados e no fim limpo a base de dados ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

nao, tens uma tabela que diz qual e' a localizacao de um ficheiro, nao e' para ser temporaria, em sql fica um pouco mais facil de fazer esse tipo de pesquisas.


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.