PHP搜索数据库和目录结构并匹配在一起

时间:2013-11-27 22:41:27

标签: php mysql

我有一个带有page_name列的表,列出了我的所有页面,如:

directory1/test1.php
directory2/test_page.php
directory3/sub_dir/page5.php

等..所以它列出了页面名称和

中的目录

如何将此列表与我的目录结构匹配并显示我的数据库表中未列出的所有页面?

所以我想显示像这样的文件和目录:

DIR1 / file1.php DIR1 / file2.php DIR2 / file1.php DIR3 / file1.phpdir3 / file2.php

但仅显示它们是否不在数据库中。例如,dir1/file.php是否在表格中,它不会显示在列表中

2 个答案:

答案 0 :(得分:1)

您可以使用PHP的内置目录函数获取特定目录的文件名: http://www.php.net/manual/en/ref.dir.php

对于每个文件,您会检查数据库中是否存在该文件,如果不存在,则打印该文件。

答案 1 :(得分:0)

首先你可能需要'Recursive directory travering',我在我找到的代码下面发帖,

$rootpath = '.';
$fileinfos = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($rootpath)
);
foreach($fileinfos as $pathname => $fileinfo) {
    if (!$fileinfo->isFile()) continue;
    var_dump($pathname);
}

显示如下:

string(11) ".\.htaccess"
string(33) ".\dom\xml-attacks\attacks-xml.php"
string(38) ".\dom\xml-attacks\billion-laughs-2.xml"
string(36) ".\dom\xml-attacks\billion-laughs.xml"

等等,

现在大致可以使用,

$sql='SELECT * FROM your_table WHERE $pathname NOT IN ('your_table')';

就在foreach之下,为你的任务。