Jump to content

Uso de * em uma pesquisa de ficheiros


Recommended Posts

Posted (edited)

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...

Edited by pemoamsi
Posted

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."

Posted

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";}"

Posted

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."

Posted

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 ?

Posted

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."

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.