Analisando o conteúdo de uma pasta em PHP
Suponha que temos uma pasta dir,
contendo tanto arquivos quanto pastas.
Vamos obter um array com os nomes dessa pasta:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Vamos verificar para cada nome se é um arquivo ou uma pasta:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Observe que o nome da pasta que estamos escanando está escrito em dois lugares do código. Isso não é muito conveniente. Vamos colocá-lo em uma variável separada:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Agora, vamos exibir o conteúdo de todos os arquivos:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Pode-se notar que o caminho para o arquivo é calculado duas vezes. Vamos colocá-lo em uma variável separada:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // caminho para o arquivo
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
É dada uma pasta. Exiba na tela uma coluna com os nomes das subpastas desta pasta.
É dada uma pasta. Exiba na tela uma coluna com os nomes dos arquivos desta pasta.
É dada uma pasta. Adicione ao final de cada arquivo desta pasta o momento atual (data e hora).