php Scan dedossierrécursif

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php Scan dedossierrécursif相关的知识,希望对你有一定的参考价值。

<?php
/**
* Scanne de manière récursive les dossiers et leur contenu.
*
* @param  string $dir_path Le chemin d'un dossier
* @param  array  $wanted_extensions Un tableau contenant les extensions de fichier recherchées sans leurs points.
*
* @return array          Tableau contenant l'arboresence de dossiers (les clés sont les noms, les valeurs sont les urls) ou NULL si le dossier est vide
*/
function scan_directory( string $dir_path, array $wanted_extensions = array() ){

	$dir_path = str_replace("//", "/", $dir_path);

	$root_folder_content = scandir($dir_path);
	//enleve le "." et le ".."
	$root_folder_content = array_splice( $root_folder_content, 2 );

	//Si le dossier est vide
	if(count($root_folder_content)===0){
		return NULL;
	} else {

		for ($i=0; $i < count($root_folder_content); $i++) {

			//Si c'est un dossier
			if( is_dir($dir_path."/".$root_folder_content[$i]) === true ){
				$ouput_array[ basename($root_folder_content[$i]) ] = scan_directory( $dir_path."/".$root_folder_content[$i], $wanted_extensions );
				//Si le dossier est vide, on ne le stoque pas dans le tableau
				if(is_null($ouput_array[ basename($root_folder_content[$i]) ])){
					unset( $ouput_array[ basename($root_folder_content[$i]) ] );
				}
			}
			//Si ce n'est pas un dossier
			else {
				//Si on a rentré des extensions à chercher
				if(count($wanted_extensions) > 0){
					$extension = explode(".", basename($root_folder_content[$i]));
					$extension = end($extension);
					//Si c'est l'extension que l'on cherche
					if(in_array($extension, $wanted_extensions)){
						$ouput_array[ basename($root_folder_content[$i]) ] = $dir_path."/".$root_folder_content[$i];
					}
				} else {
					$ouput_array[ basename($root_folder_content[$i]) ] = $dir_path."/".$root_folder_content[$i];
				}
			}
		}
		return $ouput_array;
	}
}
?>

以上是关于php Scan dedossierrécursif的主要内容,如果未能解决你的问题,请参考以下文章

php Créationd'untaxonomiepersonnalisée

php Supprimerdesélémentsdumenu en backoffice

php RésolutionquêteArrayBoucle PHP

php wordpress Autoriser l'ajout depagesprivéesaumenu etlesmasquéspourles visiteurs ano

php WordPressrequêtedefluxpersonnalisé

php ACFkeresés