在网站结构中查找“孤儿”文件

时间:2015-07-29 21:19:47

标签: php html mysql string directory

我有一个我建立的网站,它连接到一个mysql数据库。我有与图片对应的项目(在数据库中列出)。数据库结构是:

Item_num    Description    Price    Available

Item_num是唯一的字母数字(A001)。 在我的图片文件夹中,我有几张A001的照片,标有:

A001_full.jpg
A001_thumb.jpg
A001_model.jpg

这是相当一致的。有些图片没有_model版本,但都有_thumb和_full版本。不幸的是,我添加了一堆图片然后放弃了网站。当我把它重新上线时,很多这些图片都没有匹配它们的SQL条目。我想做的是:

  1. 导入图像的目录列表(../ images)
  2. 抓住文件名的第一部分(在'_'之前),为此思考strtok
  3. 使用该令牌查询数据库中的Item_num键
  4. 如果找到该密钥,请转到下一个文件
  5. 如果找不到该密钥,则将令牌输出到页面
  6. 我真的不确定目录列表以及如何处理它,以及如何对数据库运行多个重复查询。我习惯于运行一个查询然后使用结果。任何有关这方面的帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:0)

您实际上可以使用单个查询执行此操作,然后循环遍历结果。它比每个条目运行一个查询更快。像这样:

$query = "SELECT Item_num FROM table";

然后我们假设您已将结果转储为索引数组,其中每个元素的值为Item_num,每行为$result(创建此数组的具体细节可能取决于您与数据库的交互方式):

// Loop through all images
foreach ( glob( '../images/*' ) as $image ) {
    // Get the portion of the name before the underscore
    list( $image_item ) = explode( '_', $image );

    // Compare this to all of the return values
    if ( !in_array( $image_item, $result )) {
        // The image is not in the database
    }
}