breadth first search for files in hirearchy
Posted: Sun Dec 23, 2007 11:04 pm
I want to search the files in the folders in any depth by breadth first search and have written the following code but the code dose not seems like searching breadth first but it still is searching the files.
Could any one help me in this code? Thanks in advance.
Code: Select all
<?
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
define ('DIRECTORY','../../../sudeep');
include ('queue.php');
function using($pathTree=NULL){
$objQueue = new Queue;
$path=ereg_replace("\.","/",$pathTree).".php";
$pathsearched=search($path,DIRECTORY,$objQueue);
echo $pathsearched;
}
function search($path, $directory, &$objQueue){
$objQueue->Put($directory);
$targetFragmented = explode("/", $path);
for ($i=0;$i<count($targetFragmented);$i++){
$target=$targetFragmented[$i];
while ($objQueue->IsEmpty() == false){
$directory=$objQueue->Get();
if(is_dir($directory)){
$direc = opendir($directory);
while(false !== ($file = readdir($direc))){
if($file !="." && $file != ".."){
if(is_file($directory."/".$file)){
if(strcmp($target, $file)==0){
//return $directory."/".$file;
return require_once $directory."/".$file;
break;
}
}else if(is_dir($directory."/".$file)){
//echo $target."/".$file;
//echo "<br>";
if(strcmp($target, $file)==0){
$path=explode("/", $path);
array_shift($path);
$path=implode("/", $path);
return search($path,$directory."/".$file,$objQueue);
break;
}
search($path,$directory."/".$file,$objQueue);
}
}
}
closedir($direc);
}
}
}
$objQueue->Clear();
return;
}
?>