Jump to content
Sign in to follow this  
pemoamsi

Uso de * em uma pesquisa de ficheiros

Recommended Posts

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

Edited by pemoamsi

Share this post


Link to post
Share on other 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."

Share this post


Link to post
Share on other 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";}"

Share this post


Link to post
Share on other 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."

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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."

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

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