私は運がうまく行かないようにしようとしています。私はファイルをダウンロードし、UNZIPSにPHPスクリプトを持っています。ここでは問題ありません。ディレクトリの内容を取得してPHPで別のディレクトリに移動する方法
その後、解凍されたファイルを取得し、ルートディレクトリのすべてのファイルをこのフォルダのファイルに置き換える必要があります。問題は、フォルダがルートディレクトリにあることです。
例:。:私のディレクトリは、私は私のダウンロード・スクリプトを実行した後、私は私が必要DIR
/update/--UNZIPED STUFF--
のルートに更新というフォルダにアーカイブを解凍し、この
/
/folder 1
/folder 2
/folder 3
/file.php
/file2.php
etc...
のようなものです私が推測する更新フォルダと他のいくつかのファイルを除いてルートDIRから実質的にすべてのファイル/ディレクトリを削除し、更新フォルダ内のファイル/フォルダをdirのルートに移動します。
アイデア?
UPDATE
[OK]をので、私は右のようだコードを作ったが、私はリンク解除または名前の変更使用しているときに、ファイルのアクセス許可の多くを得ます。それについてどうすればいいですか?ここで
は、コードのビットは、私が
echo '<table>';
$updateContents = scandir('./');
foreach($updateContents as $number=>$fileName){
if($fileName != 'update' && $fileName != 'config.ini' && $fileName != 'layout.php' && $fileName != '..' && $fileName != '.' && $fileName != '.git' && $fileName != '.gitignore'){
if(is_dir($fileName)){
moveDownload($fileName, 'old/'.$fileName);
} else {
if(rename($fileName, 'old/'.$fileName)){
echo '<tr><td>'.$fileName.' moved successfully </td><td><font color="green">OK</font></td></tr>';
} else {
echo '<tr><td>Could not move file '.$fileName.'</td><td><font color="red">ERROR</font></td></tr>';
}
}
}
}
echo '</table>';
を作ったとmoveDownload機能は、私がどこかここに見られるものです。それは空でないフォルダを移動し、私によって少し修正されました。
function moveDownload($src,$dst){
$dir = opendir($src);
while(false !== ($file = readdir($dir))){
if (($file != '.') && ($file != '..') && ($file != 'config.ini') && ($file != 'layout.php') && ($file != 'sbpcache') && ($file !='update')){
if (is_dir($src.'/'.$file)){
if(file_exists($dst.'/'.$file)){
rrmdir($dst.'/'.$file);
}
}
if(@rename($src . '/' . $file, $dst . '/' . $file)){
echo '<tr><td>'.$file.' moved successfully </td><td><font color="green">OK</font></td></tr>';
} else {
if(@chmod($src.'/'.$file, 0777)){
if(@rename($src . '/' . $file, $dst . '/' . $file)){
echo '<tr><td>'.$file.' moved successfully </td><td><font color="green">OK</font></td></tr>';
} else {
echo '<tr><td>Could not move file '.$file.'</td><td><font color="red">ERROR RENAME</font></td></tr>';
}
} else {
echo '<tr><td>Could not move file '.$file.'</td><td><font color="red">ERROR CHMOD</font></td></tr>';
}
}
}
}
closedir($dir);
}
私も同じことをもう一度行いますが、更新フォルダから移動します。
基本的には、まず物事を削除するのではなく、古いものを古いフォルダに移動してから新しい物を移動しようとしますが、どこにでも権限の問題があります。私が 'sudo chmod 777 -R'を持っていても、いくつかのファイルは動いてしまいます。何か案は?
に問題あなたは() '、または'もしくはshell_exec() ''システムへのアクセス権を持っていますか? – Bogdacutu
いいえ、PHPにコマンドラインへのアクセスを許可したくありません。 –