php json array from recursive scan_dir and search

vasilev

Registered
здравейте,
опитвам се да направя json file от scandir array...

PHP:
function scan($dir){
	$files = array();
	if(file_exists($dir)){
		foreach(scandir($dir) as $f) {
			if(!$f || $f[0] == '.') {
				continue; 
			}
			if(is_dir($dir . '/' . $f)) {
				$files[] = array(
					"children" => scan($dir . '/' . $f) 
				);
			}
			else {
				$files[] = array(
					"name" => $f,
					"path" => $dir,
					"lastmod" => filemtime($dir . '/' . $f),
					"tags" => "",
					"size" => filesize($dir . '/' . $f) 
				);
			}
		}
	
	}

	return $files;
}


искам да мога да търся в този array по name или tags.
Но за целта ми трябва Output да е пак array но с пълен път на намерения текст.
примерно - $array[]="file"=>$this["name"],"path"=>$this["path"]

може ли да ми кажете как и дали може да стане това.

така опитах но това ще изкара текущият запис. искам да сложа един иф - is not array - show parent["name"] .


PHP:
function show_tree($array){
	if(is_array($array) && count($array) > 0) { 
        foreach($array as $key => $value) { 
		  if(is_array($value) && count($value) > 0) { 
                $res_path = show_tree($value); 
            } 
            else { 
				echo $value."<br>";
            }
		
		}
	}
}
 
Не разбрах искаш просто да ти върне Json ли или искаш да си направиш ф-ята рекурсивна? Или искаш след като ти се върнат резултатите да може правиш търсене в този масив (по име на файл примерно)? :idea:

Погледни тук: https://stackoverflow.com/questions/24783862/list-all-the-files-and-folders-in-a-directory-with-php-recursive-function

Погледни и това: https://stackoverflow.com/questions/34466362/how-to-get-a-list-of-files-of-subfolders-and-write-them-in-a-json-using-php

П.с разбира се ще трябва да си допишеш пак информацията, която искаш да вземеш от файла като "последно мод. дата" :?:

п.с.2 https://stackoverflow.com/questions/6661530/php-multidimensional-array-search-by-value - за търсене в масива
 
здравей,
мерси. искам да направя array с намерените резултати. но рекурсивната функция дава само последния кей където е намерен този стринг.
затова реших да направя структурата по различен начин и добавих допълителен array за този файл. .. сега е ок :)
 

Горе