【问题标题】:check the files which are into database but not into the folder检查进入数据库但未进入文件夹的文件
【发布时间】:2017-07-03 10:51:56
【问题描述】:

我想检查在数据库中但不在我的文件夹中的图像。所以我要如何显示所有不在我的文件夹中但在我的数据库中的图像。我从表中获取图像名称并存储将其放入一个数组中。

$abc = array();
$pqr = array();
$xyz = array();
$q1=mysql_query("SELECT * FROM rr2s4_cma_images");

while($q2=mysql_fetch_array($q1)) {
    $abc = $q2['image_name'];
    $pqr = $q2['type'];
    $xyz[] = $abc."".$pqr;
    echo "<pre>";
}
print_r($xyz);

例如: 这是我的桌子

|编号 |图像名称 |

| 1  | 6667136_2.jpg |

| 2  | 6667136_2.jpg |

| 3  | 6667141_2.jpg |

这是我在文件夹中的文件

6667136_2.jpg
6667141_2.jpg

现在我想显示图像 6667136_2.jpg,它在我的数据库中,但不在我的文件夹中。

【问题讨论】:

  • 当您在while循环中从数据库中获取图像时,为什么不使用file_exists检查文件夹中是否存在图像?
  • vinay kapoor 检查下面的答案

标签: php mysql


【解决方案1】:

您可以使用 array_diff() 来执行此操作。这将比较值(而不是键)

    <?php
      $a1=array(
                "1"=>"d",
                "2"=>"c",
                "3"=>"b",
                "4"=>"a"
      );
      $a2=array(
                "1"=>"a",
                "2"=>"b",
                "3"=>"c"
      );

      $result=array_diff($a1,$a2);
      print_r($result);
    ?>

这将打印'd'

【讨论】:

    【解决方案2】:

    我建议你在从数据库中获取文件名时使用file_exists 来检查它是否存在于文件夹中。

    $abc = array();
    $pqr = array();
    $xyz = array();
    $q1=mysql_query("SELECT * FROM rr2s4_cma_images");
    while($q2=mysql_fetch_array($q1))
    {
        if(!file_exists($q2['image_name'])) {
            $abc = $q2['image_name'];
            $pqr = $q2['type'];
            $xyz[] = $abc."".$pqr;
            echo "<pre>";
        }
    }
    print_r($xyz);
    

    【讨论】:

      【解决方案3】:

      如果您在一个数组$arrayDBImages 中有数据库中的图像并且在另一个$arrayFolderImages 中有文件夹中的图像,您可以使用

      $resultArray = array_diff($arrayDBImages ,$arrayFolderImages );
      

      在 $resultArry 你有两个数组之间的区别

      或者对于 file_exists() 你应该迭代

      $path ='/path/to';
      
       foreach( $arrayDBImages as $key => $value) {
             if (  !file_exists ($path. DIRECTORY_SEPARATOR . $value){
                echo "$value";
             }
       }
      

      【讨论】:

      • 如何使用 file_exists 而不是 array_diff?
      • 你对这段代码的 file_exist 函数有任何想法
      • 一旦你有了 db 上的文件列表,你就可以扫描你的目录并检查 file_exists
      • $arrayImages 表示从数据库中获取的图像数组?
      • 我们在 DIRECTORY_SEPARATOR 中写了什么?
      猜你喜欢
      • 2019-12-10
      • 2012-02-29
      • 2023-03-08
      • 2019-03-15
      • 2022-01-20
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多