【发布时间】:2017-03-23 15:54:45
【问题描述】:
我需要列出给定父文件夹中的所有文件/文件夹,并将其转储到 mysql。
到目前为止,我有:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$dir = '/home/kevinpirnie/www';
function dirToArray( $dir ) {
$result = array();
$cdir = scandir($dir);
foreach ($cdir as $key => $value) {
if (!in_array($value, array(".", ".."))) {
if (is_dir($dir . DIRECTORY_SEPARATOR . $value)){
$result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value);
} else {
$result[] = $value;
}
}
}
return $result;
}
$res = dirToArray($dir);
echo '<hr />';
echo '<pre>';
print_r($res);
echo '</pre>';
我坚持的是如何将ID's 分配给目录,然后将它们与它们的父级ID's 相关联。
现在,这段代码可以满足我的需要,我只需要能够将其转换为 mysql 插入语句,同时保持关联结构,我在漫长的一周工作中脑残。
最后,我希望有一个类似于以下的表结构:
文件ID、文件夹ID、父文件夹ID、文件名
我该怎么做?
【问题讨论】:
-
你需要先插入你的父母,这样你就可以得到他们的 Id 作为回报并将这些 Id 设置为子目录的 parentId。如果您使用像 Doctrine 这样的 ORM,它会为您完成。
-
因为这是我的要求
-
如果您对数据库结构不太挑剔,您可以将实际目录存储为“键”值。然后,从起点开始,您只需查询所有具有以起点的“键”开头的键的条目,而无需连接。
-
文件夹和父文件夹有什么区别?请你举个例子好吗?你的数据库的架构是什么?