检查进入数据库但不进入该文件夹的文件

时间:2017-07-03 10:51:56

标签: php mysql

我想检查进入数据库的图像,但不要检查我的文件夹。所以我要做的是显示所有不在我的文件夹中而是在我的数据库中的图像。我从表和商店中获取图像名称它成阵列。

$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);

例如: 这是我的表

| id | image_name |

| 1  | 6667136_2.jpg |

| 2  | 6667136_2.jpg |

| 3  | 6667141_2.jpg |

这是我在

文件夹中的文件
6667136_2.jpg
6667141_2.jpg

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

3 个答案:

答案 0 :(得分:0)

如果数据库中的图像位于一个数组$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";
       }
 }

答案 1 :(得分:0)

您可以使用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);
    ?>

这将打印&#39;

答案 2 :(得分:0)

我建议您在从数据库获取文件名时使用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);