PHP tem muitas funções relacionadas ao sistema de arquivos, que não apenas ajudam a abrir arquivos, mas também exibem o conteúdo do diretório, movem arquivos, etc. Muitas pessoas até escreveram gerenciadores de arquivos baseados na Web usando PHP.
Antes de tudo, preciso lembrar algo sobre o caminho do arquivo: no Windows você pode usar barra "/" ou barra invertida "\" no caminho do arquivo, enquanto outros sistemas operacionais usam apenas "/". Por motivos de compatibilidade, os exemplos a seguir usam a representação "/":
O script simples a seguir exibe uma listagem básica de diretórios. Os comentários estão no código e explicam cada passo:
<? /* Forneça o caminho completo para o diretório que deseja acessar na variável $dir_name*/
$dir_name = /home/me/
/* Crie um identificador e abra o resultado. do diretório fornecido* /
$dir = opendir($dir_name);
/* Começa a adicionar um pedaço de texto no local onde o elemento da lista (nome do arquivo) será colocado */
$file_list = <ul>
; instrução while para ler todos os elementos do diretório aberto. Se o nome do arquivo não for "." nem "..", então imprima o nome do arquivo na lista */
while ($file_name = readdir($dir)) {
if (($nome_do_arquivo != .) && ($nome_do_arquivo != ..)) {
$lista_arquivo .= <li>$nome_arquivo;
}
}
/* Finalize a lista*/
$file_list .= </ul>;
/
* Feche o identificador do diretório abertoe
finalize o segmento de código PHP*/
closedir($dir);
<HTML>
<CABEÇA>
<TÍTULO>Listagem de diretório</TÍTULO>
</CABEÇA>
<CORPO>
<!-- Use PHP para imprimir o nome do diretório que você leu -->
<P>Arquivos em: <? echo $dir_name ?></p>;
<!-- Use PHP para imprimir a listagem de diretórios -->
<?echo $lista_arquivos ?>
</CORPO>
</HTML>
Neste momento, já existe uma listagem de diretórios. Você precisa lembrar que para ler o conteúdo de um diretório ou arquivo (você verá isso em breve), a plataforma de execução do PHP onde o usuário está localizado deve ter pelo menos permissão de leitura no diretório ou arquivo.
O exemplo a seguir mostra como copiar arquivos:
<? /* Coloque o caminho do arquivo a ser copiado na variável $original e o caminho de destino a ser copiado na variável $copiado */
$original = /home/me/ meudatabasedump;
$copiado = /archive/mydatabasedumo_1010;
/* Use a função copy() para copiar o arquivo de origem para o destino ou finalize com a saída de uma mensagem de erro*/
@copy($original, $copiado) ou die(Não foi possível copiar arquivo.);
?>
O script de amostra é a primeira etapa no backup do sistema. Quando o script é executado, primeiro ele copia o banco de dados para um local diferente por motivos de segurança. Ao modificar o crontab, você pode executar este arquivo em um horário selecionado sem intervenção do usuário.
Supondo que o Lynx já esteja no sistema, você pode criar uma entrada crontab para executar o Lynx e acessar arquivos. Acessar o arquivo executará o script e criará uma cópia do arquivo. O exemplo a seguir executará o script às 5 horas da manhã e depois desligará o Lynx:
0 5 * * * [nome de usuário] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
se você estiver executando a versão PHP CGI, você pode pular a parte do Lynx e consultar os binários:
0 5 * * * [nome de usuário] php /path/to/copyfile.php 1>/dev/null 2>&1