디렉토리와 디렉터리 안의 파일을 순회할 수 있는 여러 가지 php디렉터리 탐색메소드를 소개합니다.
디렉토리를 탐색하거나 디렉토리에 있는 지정된 유형의 파일을 탐색하는 것이 모든 어린이가 프로그램을 작성할 때 필연적으로 사용하게 될 것입니다. PHP 자체도 매우 유용한 기능을 많이 제공합니다. 올바르게 사용하면 문제가 발생하지 않습니다.
이 함수는 지정된 디렉터리(하위 디렉터리 포함)에 있는 모든 파일을 나열할 수 있습니다.
코드는 다음과 같습니다.
function getfiles($path){ foreach (scandir($path) as $afile) { if($afile=='.'||$afile=='..') continue; if(is_dir($path.'/'.$afile)) { getfiles($path.'/'.$afile); } else { echo $path.'/'.$afile.'<br />'; } } } //简单的demo,列出当前目录下所有的文件 getfiles(DIR);
scandir()는 지정된 디렉터리에 있는 모든 파일과 디렉터리의 배열을 반환합니다. 매우 강력한 함수 glob(). glob()에는 2개의 매개변수가 있으며 두 번째 매개변수는 선택사항이며 나중에 설명합니다. glob()을 사용하여 디렉터리를 탐색하는 방법을 직접 살펴보겠습니다.
'.' 및 '..'이 glob()에 의해 반환된 콘텐츠에서 필터링되었음을 알 수 있습니다. 여기서 *는 디렉터리의 모든 파일을 탐색한다는 의미입니다. 이에 따라 *.txt로 변경되면 해당 디렉터리의 모든 txt 파일이 탐색됩니다. 매우 편리하지 않나요? 그 편리함은 이것에만 국한되지 않습니다. Yuan Fang에 따르면 여기에는 엄청난 비밀이 숨겨져 있습니다. 나중에 이야기하겠습니다. 관심이 있으시면 메시지를 남겨주세요.
코드는 다음과 같습니다.
function getfiles($path){ foreach(glob($path) as $afile){ if(is_dir($afile)) { getfiles($afile.'/*'); } else { echo $afile.'<br />'; } } } //简单的demo,列出当前目录下所有的文件 getfiles(DIR);0
*.txt를 사용하면 디렉터리의 모든 txt 파일을 탐색하므로 특정 형식의 파일을 동시에 탐색하려면 어떻게 해야 할까요? 무엇을 해야 할까요? 어떤 어린이는 배열 사용을 생각한 다음 재빨리 작성하여 {*.txt,*.jpg,*.zip,...}으로 바꾸었습니다. 물론 프로그램이 false를 반환한다는 사실도 빨리 발견했습니다. 그리고 아무것도 얻지 못했습니다. 실망하지 마세요. 여기에는 방금 언급한 두 번째 선택적 매개변수가 포함됩니다. 이 매개변수는 glob의 동작을 변경하는 데 사용됩니다. 자세한 내용은 PHP 매뉴얼을 참조하세요. GLOB_BRACE는 'a', 'b' 또는 'c',...}와 일치하도록 {a,b,c,...}를 확장하는 데 사용됩니다. 사용법은 다음과 같습니다: foreach(glob($path.'/{*.txt,*.jpg,*.zip,...}', GLOB_BRACE) as $fileName){...}
완전한 내용은 다음과 같습니다. 디렉토리에 있는 모든 파일 탐색 지정된 파일 유형 기능의 다음 예를 볼 수 있습니다.
폴더 및 하위 폴더
에 있는 모든 파일을 탐색합니다. 코드는 다음과 같습니다.
<html> <body> <?php function traverse($path = '.') { $current_dir = opendir($path); //opendir()返回一个目录句柄,失败返回false while(($file = readdir($current_dir)) !== false) { //readdir()返回打开目录句柄中的一个条目 $sub_dir = $path . DIRECTORY_SEPARATOR . $file; //构建子目录路径 if($file == '.' || $file == '..') { continue; } else if(is_dir($sub_dir)) { //如果是目录,进行递归 echo 'Directory ' . $file . ':<br>'; traverse($sub_dir); } else { //如果是文件,直接输出 echo 'File in Directory ' . $path . ': ' . $file . '<br>'; } } } traverse('xxtt'); ?> </body> </html>
일반적으로 사용되는 몇 가지 예
코드는 다음과 같습니다.
<?php $dir="E:/video"; //这里输入其它路径 //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); echo "文件:<br>"; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { echo $file; //输出文件名 } } closedir($handle); ?>
이 단락을 사용하세요. 코드는 모든 파일을 반복하고 모든 파일 이름을 배열로 저장합니다.
코드는 다음과 같습니다.
<?php $s=explode("/n",trim(`dir/b e://video`)); print_r($s); ?> <?php $dir="E:/video"; //这里输入其它路径 //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); echo "文件:<br>"; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $file=$file.','; //输出文件名 $file=explode(',',$file); } } print_r($file);//输出的就是数组了 closedir($handle); ?> <?php $dir="."; //这里输入其它路径 //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); echo "文件:<br>"; //定义用于存储文件名的数组 $array_file = array(); while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $array_file[] = $file; //输出文件名 } } closedir($handle); print_r("<pre class="brush:php;toolbar:false">"); print_r($array_file); print_r(""); ?>
위 내용은 PHP에서 디렉터리와 폴더를 탐색하는 여러 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!