检查

2017-07-03 86 views
0

我想检查哪些是到数据库中的图像,其是到数据库中,但没有到该文件夹​​中的文件,但不进我的folder.So我做什么,以显示所有这些都没有进入我的文件夹中的图片,但到我的数据库。我从表中获取图像名称并将其存储到数组中。检查

$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这是到我的数据库,但不进我的文件夹中。

+0

你为什么不使用'file_exists'检查,如果在文件夹中存在图像时,你是从数据库中while循环的故事吗? –

+0

vinay kapoor检查下面的答案 –

回答

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"; 
     } 
} 
+0

如何使用file_exists而不是array_diff? –

+0

你可以使用所有的喜欢,也可以矿山的候选条件的一个回答.. – scaisEdge

+0

u有大约为file_exists –

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

这将打印“d”

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