php - 在网站结构中找到 "orphan"文件

标签 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. 使用该 token 查询数据库中的 Item_num 键
  4. 如果找到那个键,移动到下一个文件
  5. 如果找不到该 key ,则将 token 输出到页面

我真的不确定目录列表以及如何处理它,以及如何对数据库运行多个重复查询。我习惯于运行一个查询,然后使用该查询的结果。对此的任何帮助将不胜感激

最佳答案

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

$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
    }
}

关于php - 在网站结构中找到 "orphan"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711344/

相关文章:

javascript - 使用 JavaScript jQuery 从 url 获取 GET 变量

php - 阻止人们入侵 Flash 游戏的基于 PHP 的高分表的最佳方法是什么?

php mysql 批量或批量更新多列和多行,但如果列不为空则不更新

php - 我只想在 Windows 的命令行中运行 PHP。如何开始?

html - 如何在 html 的同一行中对齐复选框和标签?

javascript - jquery mobile Pageshow - 删除以前的数据

javascript - 也可以隐藏的闪烁文本

php - 具有跨多个表的相关性的站点搜索的好例子 (php/mysql)

mySQL LEFT JOIN 和 COUNT 右 watch 中出现的次数

python - 在 Windows 上为 django 开发设置 virtualenv,