檢查

2017-07-03 85 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);