note 41780 deleted from ref.dir by tomsommer

From: Date: Thu, 22 Apr 2004 06:32:02 +0000
Subject: note 41780 deleted from ref.dir by tomsommer
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-68507@lists.php.net to get a copy of this message
Note Submitter: Paulo Rosa (aka Duling) ---- Maybe off topic, but here's one that copies directories' contents from one side to another recursively. Comments are in portuguese but I believe you'll understand. It breaks on any error. function fnc_copy_tree($original_dir, $destination_dir, $level=0) { // // Nível máximo é 5. Se o atingir, retorna falso if ($level==5) { return false; } // // Utiliza variáveis auxiliares, sem '/' no fim. $o_dir = $original_dir; $d_dir = $destination_dir; while (substr($o_dir, strlen($o_dir)-1, 1)=='/') { $o_dir=substr($o_dir, 0, strlen($o_dir)-1); } while (substr($d_dir, strlen($d_dir)-1, 1)=='/') { $d_dir=substr($d_dir, 0, strlen($d_dir)-1); } // // Percorre a directoria $handle = opendir($o_dir); while (($entry=readdir($handle))!==false) { $o_full_entry = $o_dir.'/'.$entry; $d_full_entry = $d_dir.'/'.$entry; if ($entry=='.' || $entry=='..') { // // Não faz nada, passa à seguinte } else if (is_dir($o_full_entry)) { // //1. Cria directoria de destino. //2. Copia novamente (recursivo) if (!file_exists($d_full_entry) && !mkdir($d_full_entry)) { return false; } if (!fnc_copy_tree($o_full_entry, $d_full_entry, $level+1)) { return false; } } else { // // É ficheiro. Simplemente copia-o. if (!copy($o_full_entry, $d_full_entry)) { return false; } } } return true; } Feel free to use.

« previous php.notes (#68507) next »