晚的演出,而是建立關accepted answer的...
如果你想要所有的文件和目錄在數組中(這可以用在JavaScript中JSON.stringify很好地預裝),你c的修改功能:
function listFolderFiles($dir) {
$arr = array();
$ffs = scandir($dir);
foreach($ffs as $ff) {
if($ff != '.' && $ff != '..') {
$arr[$ff] = array();
if(is_dir($dir.'/'.$ff)) {
$arr[$ff] = listFolderFiles($dir.'/'.$ff);
}
}
}
return $arr;
}
對於新手...
使用上述JSON.stringify
,你的JS/jQuery的會是這樣的:
var ajax = $.ajax({
method: 'POST',
data: {list_dirs: true}
}).done(function(msg) {
$('pre').html(
'FILE LAYOUT<br/>' +
JSON.stringify(JSON.parse(msg), null, 4)
);
});
^這是假設你的HTML中有一個<pre>
元素。任何AJAX的味道都可以,但我想大多數人都在使用類似於上面的jQuery的東西。
和附帶的PHP:
if(isset($_POST['list_dirs'])) {
echo json_encode(listFolderFiles($rootPath));
exit();
}
,你已經有listFolderFiles
從之前。
就我而言,我已經把我的$rootPath
到網站的根目錄...
$rootPath;
if(!isset($rootPath)) {
$rootPath = $_SERVER['DOCUMENT_ROOT'];
}
最終的結果是一樣的東西......
| some_file_1487.smthng []
| some_file_8752.smthng []
| CSS
| | some_file_3615.smthng []
| | some_file_8151.smthng []
| | some_file_7571.smthng []
| | some_file_5641.smthng []
| | some_file_7305.smthng []
| | some_file_9527.smthng []
|
| IMAGES
| | some_file_4515.smthng []
| | some_file_1335.smthng []
| | some_file_1819.smthng []
| | some_file_9188.smthng []
| | some_file_4760.smthng []
| | some_file_7347.smthng []
|
| JSScripts
| | some_file_6449.smthng []
| | some_file_7864.smthng []
| | some_file_3899.smthng []
| | google-code-prettify
| | | some_file_2090.smthng []
| | | some_file_5169.smthng []
| | | some_file_3426.smthng []
| | | some_file_8208.smthng []
| | | some_file_7581.smthng []
| | | some_file_4618.smthng []
| |
| | some_file_3883.smthng []
| | some_file_3713.smthng []
... and so on...
注:你的看起來不會像這樣 - 我修改了JSON.stringify
來顯示標籤(垂直管道),對齊所有鍵值,刪除鍵引號和其他一些東西。如果我想要上傳它,或者獲得足夠的興趣,我會通過鏈接修改此答案。
謝謝Shef它工作正常他們的任何shell命令執行此? – Warrior
'php file_name.php'? – Shef
不,我問你是否有任何單一的shell腳本列出所有的文件夾和文件,如esec(查找) – Warrior