Данная функция должна возвратить массив с папками БЕЗ использования глобальных переменных. Подскажите, пожалуйста, как это сделать?
function dirFinder ($folder)
{
$all_in_folder = scandir($folder);
foreach ($all_in_folder as $value) {
if ($value == '.' || $value == '..') continue;
$path_to_object = "$folder\\$value";
if (is_dir($path_to_object)) {
$arr[] = "$folder\\$value";
dirFinder($path_to_object);
}
}
}
Папки должны записываться в данный массив:
$arr[] = "$folder\\$value";
В результате должно получиться что-то вроде этого:
Array
(
[0] => W:\mysite.loc\Папка 1
[1] => W:\mysite.loc\Папка 1\Папка 2
[2] => W:\mysite.loc\Папка 1\Папка 2\Папка 3
[3] => W:\mysite.loc\Папка 1\Папка 2\Папка 3\Папка 4
)
Исправлен код функции:
function dirFinder ($folder)
{
$arr = [];
$all_in_folder = scandir($folder);
foreach ($all_in_folder as $value) {
if ($value == '.' || $value == '..') continue;
$path_to_object = "$folder\\$value";
if (is_dir($path_to_object)) {
array_push($arr, "$folder\\$value");
dirFinder($path_to_object);
}
}
return $arr;
}
Если используете php скрипт в среде Linux, вместо "$folder\\$value"
используйте другой разделитель "$folder/$value"
Второй вариант:
function dirFinder ($folder, $arr = null)
{
if ($arr === null) {
$arr = [];
}
$all_in_folder = scandir($folder);
foreach ($all_in_folder as $value) {
if ($value == '.' || $value == '..') continue;
$path_to_object = "$folder".DIRECTORY_SEPARATOR."$value";
if (is_dir($path_to_object)) {
array_push($arr, "$folder".DIRECTORY_SEPARATOR."$value");
$arr = dirFinder($path_to_object, $arr);
}
}
return $arr;
}
$arr = dirFinder("C:\\mysite.loc");
print_r($arr);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть набор предложений по типу "Green Apple", и каждое имеет от 2 до 7 словНужно находить среди них к примеру "Green Apple" по таким ключевым словам как...