2016-09-08 3 views
0
if(unlink('./'.date('m-d-Y').'/'.$file)) 
{ 

    echo "file named $file has been deleted successfully"; 
} 
else 
{ 
echo "file is not deleted"; 
} 

위의 코드를 통해 파일을 삭제할 수 있습니다. 그러나 포함 된 파일 만 삭제할 수 있습니까 ".5010." "%.5010.%" 또는 이와 비슷한 작업을 수행 할 수 있습니까? 아니면 둘 이상의 파일을 잠시 동안 또는 foreach 루프에 넣어야합니까? 이제는 내 모든 파일을 삭제하기 때문입니다.PHP 디렉토리의 파일 삭제

답변

0

glob()을 사용하면 패턴과 일치하는 경로 이름을 찾을 수 있습니다.

그래서 코드는 어떤 파일이 일치하지 않거나 오류에 FALSE 경우 일치하는 파일/디렉토리, 하늘의 배열을 포함하는 배열을 반환

$path="./".date('m-d-Y')."/*".$file."*"; 
$files = glob($path); // this will return multiple files. 
foreach ($files as $file) { 
    unlink($file); 
} 

글로브()를 다음과 같이 보일 것입니다.

+0

일치하는 파일을 선택 할 수 코드를 않습니다 이 문제도 해결 하시겠습니까? –

+0

파일 이름이 5010이고 파일 이름이 5010이고 파일 이름이 5010입니다. –

+0

작동하지 않았습니다. –

0

당신은 글로브와 사용 preg_match 후 파일에 대한 루프는 "5010"를 삭제되지만 그것 또한 다시 재실행 내 코드와 패턴

<?php 
foreach(glob('path/to/dir/*.*') as $file) { 
    if (preg_match('*.5010.*', $file)) { 
     unlink($file) 
    } 
} 
+0

괜찮아 보입니다. @ Jasmine22 테스트합니다. – devpro

+0

'preg_match()'에 대한 구분 기호가 없습니다. http://php.net/manual/en/regexp.reference.delimiters.php –

관련 문제