Я работаю над проектом файлового менеджера и, похоже, не вижу своей цели в создании рекурсивного каталога, в котором я получаю только каталоги. Все, что я пробовал, либо оставляет пустые подкаталоги, либо не работает, когда я пытаюсь разобрать его в структуре возврата в дерево jQuery.PHP рекурсивный список каталогов - каталоги ТОЛЬКО
Я пробовал использовать массив и рекурсивные итераторы, но до сих пор ничего не работает.
** Обновление **
Благодаря входу каждого я вырезал мой код до:
class image_management {
private $_user_id;
private $_user_name;
private $_user_path;
/**
* Constructor
*/
function __construct($user_id, $user_name) {
$this->_user_id = $user_id;
$this->_user_name = $user_name;
$this->_user_path = ORDER_ROOT.$this->_user_id;
}
/**
* Cleanup the class and close connections
*
*/
function __destruct() {
}
/**
* Get Image Folders
* Returns an HTML list of the folders under a users
* directory.
*
* @param hash $user_id -user id hash
* @param string $user_name - users email address
* @return string - html list
*/
public function getHTMLTree() {
$html = "<li><a href='#'>";
$html .= $this->_user_name . "</a><ul>";
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($this->_user_path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $file) {
if($file->isDir()) {
$item = substr($file->getPathname(),strlen($this->_user_path));
echo $item;
}
}
return $html;
}
}
Это дает мне выход:
/home/printshi/public_html/test/orders/88a0a01afd3728af8f6710ed874267f3
/Aggie_Stuff
/Misc
/Misc/Christmas
/Misc/Christmas/santa
/Misc/Christmas/frosty
/Misc/test1
/Geek_Stuff
, который приближает меня, моя проблема теперь в том, что мне нужно сделать все эти элементы в HTML, поэтому t Шляпа я получаю выход, как:
<ul>
<li>Aggie_Stuff</li>
<li>Misc<ul>
<li>Christmas<ul>
<li>santa</li>
<li>frosty</li>
</ul>
</li>
<li>test1</li>
</ul>
<li>Geek_Stuff</li>
Рекурсия часть я понимаю, это просто получить его, чтобы сделать HTML, что я не могу получить мою голову вокруг независимо от того, насколько сильно я стараюсь.
Хотя вы добавили этот PHP 5, вы используете стиль объекта, который очень ясно из PHP 4. Пожалуйста, обратите внимание, используя [видимость ключевые слова] (http://www.php.net/manual/en/language.oop5.visibility.php) перед вашими методами и вместо ключевого слова 'var' для ваших свойств. – Charles
См. Мой ответ здесь для недостающей ссылки: http://stackoverflow.com/questions/2207599/multidimensional-array-iteration/2207739#2207739 - Вместо hardcoding '' вы используете '$ this-> key()' –
Gordon