2013-07-11 101 views
0

我有一個管理系統,它動態地添加配置文件頁面 - 並且它的一部分將圖像添加到目錄。當我添加圖像時,它們都具有名稱格式,如12_1.jpg,12_2.jpg,32_1.jpg,32_9.jpg,其中下劃線之前的數字是編號$cid,下劃線之後的數字是圖像編號。PHP刪除圖像

我試圖找到一種方法來在edit-images.php頁面上列出圖像,並使用刪除它們的選項(可能是圖像名稱旁邊的鏈接或其他更好的方法)。

這裏是要找到我需要刪除的選項圖像的代碼:

if ($handle = opendir('../images/company')) { 
    while (false !== ($entry = readdir($handle))) {  
     if (substr(basename($entry), 0, 2) == $cid) { 
     echo $entry . "<br>"; 
     } 
    } 
    closedir($handle); 
} 

我怎麼會去從這裏刪除指定的圖像?任何幫助,將不勝感激。

+0

你會問他們想要哪一個結局刪除然後刪除適當的文件,確保它是你期望的文件之一。如果你嘗試並卡住,告訴我們你在哪裏,我們會提供幫助。 – Anigel

+0

'$ cid'是什麼? – 2013-07-11 13:55:18

+0

'$ cid'是個人資料頁面的ID號碼 – davelowe85

回答

1

爲什麼要掃描文件的目錄?您可以檢查文件是否存在並刪除它。例如:

$files = glob("../images/company/$cid_*.jpg"); 
foreach($files as $file) { 
    if(file_exists($file)) unlink($file); 
} 

這將取消鏈接所有文件../images/company與名稱以123_例如和.jpg(您可以通過使用GLOB_BRACE參數提供更多的擴展)

+0

如果我使用了'$ files = glob(「../ images/company/$ cid _ *」);'那會刪除所有圖片,所以如果某些地方有gif,png的話它會刪除它們呢? – davelowe85

+0

是的,例如,它會刪除名稱中包含'123_'後的所有文件。 –

2

在php中,您使用unlink函數來刪除文件。只是回顯一個鏈接到一個頁面,調用一個函數做到這一點,並傳遞圖像名稱。在實際執行刪除之前,請務必檢查用戶輸入。

+0

我不是很清楚。理想情況下,我想列出與個人資料頁面關聯的所有圖像(例如,說明9個圖像),然後可以選擇一次刪除它們,如果可能,請保留在同一頁面上? – davelowe85

+0

是的,有兩種方式:1.使用Ajax調用另一個頁面「在後臺」,然後通過javascript或者2:把一個像這樣的鏈接放到yourpage.php?action = deleteimage&img = $ imagename然後通過$ _GET檢查動作,執行刪除並重新渲染頁面。 – Mir

+0

乾杯。我想我會選擇2前!謝謝你的幫助。 – davelowe85