Scanning All Files and Directories

Scanning All Files and Directories


Anda dapat membuat Fungsi scanning dalam PHP.


Scanning berikut menghasilkan query dalam bentuk array, dan bersifat continue sampe file terakhir pada folder terakhir, jadi smua bakalan discan, kecuali untuk nilai pada variable $invisibleFileNames yang ditampung juga dalam array

<?php
function scanDirectories($rootDir) {
??? // set filenames invisible if you want
??? $invisibleFileNames = array(".", "..", ".htaccess", ".htpasswd", "Thumbs.db");
??? // run through content of root directory
??? $dirContent = scandir($rootDir);
??? $allData = array();
??? // file counter gets incremented for a better
??? $fileCounter = 0;
???
??? foreach($dirContent as $key => $content) {
??????? // filter all files not accessible
??????? $path = $rootDir.'/'.$content;
??????? if(!in_array($content, $invisibleFileNames)) {
??????????? // if content is file & readable, add to array
??????????? if(is_file($path) && is_readable($path)) {
??????????????? $tmpPathArray = explode("/",$path);
??????????????? // saving filename
??????????????? $allData[$fileCounter]['fileName'] = end($tmpPathArray);
??????????????? // saving while path (for better access)
??????????????? $allData[$fileCounter]['filePath'] = $path;
??????????????? // get file extension
??????????????? $filePartsTmp = explode(".", end($tmpPathArray));
??????????????? $allData[$fileCounter]['fileExt'] = end($filePartsTmp);
??????????????? // get file date
??????????????? $allData[$fileCounter]['fileDate'] = date('Y-m-d H:i:s', filectime($path));
??????????????? // get filesize in byte
??????????????? $allData[$fileCounter]['fileSize'] = filesize($path);
??? ??? ??? ???
??? ??? ??? ??? //query SQL dapat diletakkan disini:
??? ??? ??? ??? //mysql_query("INSERT INTO dirGue(path, filename) VALUES('".$allData[$fileCounter]['filePath']."', '".$allData[$fileCounter]['fileName']."')")
??? ??? ??? ???
??????????????? $fileCounter++;
??????????? // if content is a directory and readable, add path and name
??????????? }elseif(is_dir($path) && is_readable($path)) {
??????????????? $dirNameArray = explode('/',$path);
??????????????? $allData[$path]['dirPath'] = $path;
??????????????? $allData[$path]['dirName'] = end($dirNameArray);
??????????????? // recursive callback to open new directory
??????????????? $allData[$path]['content'] = scanDirectories($path);
??????????? }
??????? }
??? }
???
??? return $allData;
}

if(isset($_POST['submit']) && !empty($_POST['rootDir']))
{
??? print_r(scanDirectories($_POST['rootDir']));
}
?>

<h2>Scanning All Files and Directories
</h2>
<form action="" method="post">
<input name="rootDir" type="text" size="20" />
<input name="submit" type="submit" value="scan directories" />
</form>

Selamat mencoba :D~~

Artikel Terkait :