나는 이것을 행운으로 처리하려고 노력해 왔습니다. 나는 파일을 다운로드하고 UNZIPS하는 PHP 스크립트를 가지고있다. 여기에 문제 없습니다.디렉토리 내용을 얻고 PHP를 사용하여 다른 디렉토리로 이동하는 방법
그런 다음 압축 해제 된 파일을 가져와 루트 디렉토리의 모든 파일을이 폴더의 파일로 바꿔야합니다. 문제는 폴더가 루트 디렉토리에 있다는 것입니다. 내가 필요로하는 디렉토리
/update/--UNZIPED STUFF--
의 루트에 폴더라는 업데이트 할 수있는 아카이브의 압축을 풀고 내 다운로드 스크립트를 실행 한 후
예 : 내 디렉토리를 .:이
/
/folder 1
/folder 2
/folder 3
/file.php
/file2.php
etc...
같은 것입니다 거의 모든 파일/dirs 루트 디렉토리에서 추측 업데이트 파일을 제외하고 몇 가지 다른 파일을 삭제하고 파일/폴더를 dir의 루트에 업데이트 폴더 내부로 이동합니다.
아이디어가 있으십니까?
UPDATE
좋아, 그래서 바로 것 같다 코드를 만든 적이 있지만 연결을 해제하거나 이름을 사용하는 경우에 파일 권한을 많이 얻을. 어떻게해야할까요? 여기
코드의 비트 내가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가 명령 줄에 액세스하는 것을 허용하지 않으려합니다. –