Instalação
Artigos
Cursos
Loja
INSTALAÇÃO
ARTIGOS
CURSOS
EBOOKS
DOWNLOADS
LOJA
ARTIGOS
Sistema de arquivos e diretórios com PHP
Quando paramos para pensar nas tarefas do cotidiano de um desenvolvedor PHP, podemos observar que mesmo as mais simples podem envolver funções do sistema de arquivos e diretórios oferecidas pelo PHP. Trabalhar com diretórios no PHP pode ir muito mais longe do que ler e escrever arquivos.
## Sistema de arquivos básico As tarefas mais simples que podem ser executadas com PHP envolvendo arquivos são: * abrir * escrever Provavelmente você já ouviu falara ou utilizou uma das duas funções usadas para as tarefas mencionada acima: * file_get_contents * file_put_contents ### file_get_contents A função `file_get_contents` é a maneira mais fácil de ler um conteúdo ou arquivo em formato de string, veja o exemplo a seguir de como é fácil: ```php 'R$ 52,22', '2'=> 'R$ 127,00', '3'=> 'R$ 92,32', '4'=> 'R$ 124,90', '5'=> 'R$ 299,90', ]; $buffer = ''; foreach ($vendas as $numero_venda => $valor) { $buffer .= "Venda: {$numero_venda} - Valor: {$valor} \n"; } file_put_contents('vendas.txt', $buffer); ``` Como não foi informado um diretório específico a escrita será no mesmo nível do arquivo `.php`. O resultado do arquivo escrito será: ``` Venda: 1 - Valor: R$ 52,22 Venda: 2 - Valor: R$ 127,00 Venda: 3 - Valor: R$ 92,32 Venda: 4 - Valor: R$ 124,90 Venda: 5 - Valor: R$ 299,90 ``` ### Funções de sistema de arquivos A lista completa de funções pode ser conferida diretamente [pelo site do PHP](https://secure.php.net/manual/pt_BR/ref.filesystem.php). São disponibilizadas 81 funções que atendem as mais diversas necessidades, alguns exemplos são: - Apagar arquivos - Mudar o tempo de modificação do arquivo - Criar link simbólico - Modificar permissões do arquivo - etc
## Sistema de diretórios Do mesmo modo que o PHP disponibiliza função para manipulação de arquivos, são oferecidas funções para trabalhar com diretórios. Embora em número bem menor, muita coisa pode ser desenvolvida usando os métodos oferecidos. são eles: - [chdir](https://php.net/manual/pt_BR/function.chdir.php) — Mudar o diretório - [chroot](https://php.net/manual/pt_BR/function.chroot.php) — Mudar o diretório raiz (root) - [closedir](https://php.net/manual/pt_BR/function.closedir.php) — Fechar o manipulador do diretório - [dir](https://php.net/manual/pt_BR/function.dir.php) — Retornar uma instância da classe Diretório - [getcwd](https://php.net/manual/pt_BR/function.getcwd.php) — Obtér o diretório atual - [opendir](https://php.net/manual/pt_BR/function.opendir.php) — Abrir um manipulador de diretório - [readdir](https://php.net/manual/pt_BR/function.readdir.php) — Ler os campos do manipulador do diretório - [rewinddir](https://php.net/manual/pt_BR/function.rewinddir.php) — Voltar (rewind) o manipulador de diretório - [scandir](https://php.net/manual/pt_BR/function.scandir.php) — Listar os arquivos e diretórios que estão no caminho especificado Uma aplicação interessante das funções de diretórios é montar uma árvore contando com todos arquivos e subdiretórios. Veja o código-fonte total necessário para criar uma árvore com todos os arquivos e diretórios do projeto: ```php '; foreach($ffs as $ff) { echo '
'.$ff; // Se for diretório chama a função recursivamente if(is_dir($dir.'/'.$ff)) { listarDiretorios($dir.'/'.$ff); } echo '
'; } echo ''; } // Ponto inicial para exibir os arquivos listarDiretorios('.'); ``` Resultado em um pequeno projeto: ``` 1. t.php 2. t.txt 3. vendas.txt ``` Resultado em um grande projeto: ``` adianti 1. LICENSE 2. base 1. .htaccess 2. AdiantiFileSaveTrait.php 3. AdiantiMasterDetailTrait.php 4. AdiantiStandardControlTrait.php 5. AdiantiStandardFormListTrait.php 6. AdiantiStandardFormTrait.php 7. AdiantiStandardListTrait.php 8. TStandardForm.php 9. TStandardFormList.php 10. TStandardList.php 11. TStandardSeek.php 3. control 1. .htaccess 2. TAction.php 3. TPage.php 4. TWindow.php 4. core 1. AdiantiApplicationConfig.php 2. AdiantiApplicationLoader.php 3. AdiantiClassMap.php 4. AdiantiCoreApplication.php 5. AdiantiCoreLoader.php 6. AdiantiCoreTranslator.php 5. database 1. .htaccess 2. TConnection.php 3. TCriteria.php 4. TExpression.php 5. TFilter.php 6. TRecord.php 7. TRepository.php 8. TSqlDelete.php 9. TSqlInsert.php 10. TSqlSelect.php 11. TSqlStatement.php 12. TSqlUpdate.php 13. TTransaction.php 6. images 1. error.png 2. ico_add.png 3. ico_apply.png 4. ico_back.png 5. ico_choose.png 6. ico_close.png 7. ico_datagrid.png 8. ico_delete.png 9. ico_down.png 10. ico_edit.png 11. ico_email.png 12. ico_error.png 13. ico_find.png 14. ico_help.png 15. ico_new.png 16. ico_no.png 17. ico_ok.png 18. ico_print.png 19. ico_question.png 20. ico_save.png 21. ico_up.png 22. ico_view.png 23. info.png 24. menu-bar-gradient-gray.gif 25. menu-bar-gradient.jpg 26. menu-bar-right-arrow.gif 27. menu-bar-right-arrow.png 28. menu_strip_bg.jpg 29. menu_strip_bg_gray.gif 30. menu_strip_down_arrow.gif 31. menu_strip_down_arrow.png 32. menu_strip_separator-gray.gif 33. menu_strip_separator.gif 34. question.png 35. tbutton_back.gif 36. tdate-gtk.png 37. tdate.png 38. tfield_back.gif 39. tfield_back_focus.gif 40. tfile_loader.gif 41. ttext_back.gif 7. include 1. adianti.css 2. adianti.js 3. adianti.min.css 4. adianti.min.js 5. components.css 6. components.js 7. components.min.css 8. components.min.js 9. fonts 1. opensans 1. v13 1. cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2 ```
COMENTE SOBRE