>  기사  >  php教程  >  rrmdir php에서 디렉토리와 파일을 반복적으로 삭제합니다.

rrmdir php에서 디렉토리와 파일을 반복적으로 삭제합니다.

高洛峰
高洛峰원래의
2016-12-28 15:02:311412검색

function rrmdir($dir) { 
if (is_dir($dir)) { 
$objects = scandir($dir); 
foreach ($objects as $object) { 
if ($object != “.” && $object != “..”) { 
if (filetype($dir.”/”.$object) == “dir”) rrmdir($dir.”/”.$object); else unlink($dir.”/”.$object); 
} 
} 
reset($objects); 
} 
}

rmdir
(PHP 4, PHP 5)
rmdir — 디렉토리 삭제
버그 신고 설명
bool rmdir ( string $dirname )
지정된 디렉토리를 삭제해 보세요. by dirname 목차. 디렉터리는 비어 있어야 하며 적절한 권한이 있어야 합니다. 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.
참고: PHP 5.0.0부터 rmdir()은 특정 URL 래핑 프로토콜과 함께 사용할 수도 있습니다. rmdir()이 지원하는 URL 래핑 프로토콜을 보려면 지원되는 프로토콜 및 래퍼 목록을 참조하세요.
참고: 컨텍스트에 대한 지원은 PHP 5.0.0에 추가되었습니다. 컨텍스트에 대한 설명은 Stream 함수를 참조하세요.
참고: 안전 모드가 활성화되면 PHP는 스크립트를 실행할 때 스크립트에 의해 조작되는 디렉터리가 실행 중인 스크립트와 동일한 UID(소유자)를 가지고 있는지 확인합니다.
mkdir() 및 unlink()를 참조하세요.

<?php 
function rrmdir($dir) { 
if (is_dir($dir)) { 
$objects = scandir($dir); 
foreach ($objects as $object) { 
if ($object != "." && $object != "..") { 
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); 
} 
} 
reset($objects); 
rmdir($dir); 
} 
} 
?>
<?php 
function deleteAll($directory, $empty = false) { 
if(substr($directory,-1) == "/") { 
$directory = substr($directory,0,-1); 
} 
if(!file_exists($directory) || !is_dir($directory)) { 
return false; 
} elseif(!is_readable($directory)) { 
return false; 
} else { 
$directoryHandle = opendir($directory); 
while ($contents = readdir($directoryHandle)) { 
if($contents != &#39;.&#39; && $contents != &#39;..&#39;) { 
$path = $directory . "/" . $contents; 
if(is_dir($path)) { 
deleteAll($path); 
} else { 
unlink($path); 
} 
} 
} 
closedir($directoryHandle); 
if($empty == false) { 
if(!rmdir($directory)) { 
return false; 
} 
} 
return true; 
} 
} 
?> 
[/code] 
A patch to previous script to make sure rights for deletion is set:
<?php 
//Delete folder function 
function deleteDirectory($dir) { 
if (!file_exists($dir)) return true; 
if (!is_dir($dir) || is_link($dir)) return unlink($dir); 
foreach (scandir($dir) as $item) { 
if ($item == &#39;.&#39; || $item == &#39;..&#39;) continue; 
if (!deleteDirectory($dir . "/" . $item)) { 
chmod($dir . "/" . $item, 0777); 
if (!deleteDirectory($dir . "/" . $item)) return false; 
}; 
} 
return rmdir($dir); 
} 
?>

rrmdir php에서 디렉토리와 디렉토리 아래의 파일을 반복적으로 삭제하는 것과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.