2011-04-04 70 views
1

我正在製作一個包含評論系統的PHP圖像庫腳本。 該腳本的基本功能是讀取該文件夾的名稱,並顯示一個包含該文件夾的 名稱的圖庫及其圖像。使用PHP識別文件夾

的問題是,該評論系統,這是與MySQL做出節省這樣的評論:

ID |文件夾|圖片

這很好,但是當我更改文件夾的名稱時,該腳本不起作用,因爲在Mysql表中設置了錯誤的文件夾名稱。 另外,當我只保存圖像的名稱有可能在不同 文件夾中具有相同名稱的兩張圖片。

是否可以在不使用名稱的情況下識別文件夾?

//注意:

感謝您的幫助,我想我找到了解決方案。現在我只保存圖像的md5散列並將其保存在數據庫中而不是文件夾名稱中。

+0

你爲什麼改變文件夾名稱? – Dai 2011-04-04 14:25:35

回答

1

我想最好使用另一個表格,您將保存文件夾ID和他們的名字 folder_id | folder_name 就是這樣的。依靠文件夾名稱不是一種好的做法

+0

如果文件夾名稱更改? – 2011-04-04 14:24:30

+0

在表格中更改它。最好使用一些簡單的不可更改的識別系統 – kos 2011-04-04 14:28:10

+0

然後,他應該使用完全相同的PHP腳本來更改目錄名稱。 – 2011-04-04 14:29:21

1

不需要。您需要將文件系統與數據庫同步。每當你重命名/刪除/編輯一個文件夾,在mysql數據庫中更新它的條目。

1

一種可能性可能是將圖像內容的校驗和用作唯一標識符。只要內容不變,那麼你應該沒問題。至於識別文件夾名稱的改變,我想不出有什麼狡猾的方式來檢測這個文件夾,除非你使用一個散列函數來檢測這個散列文件。

我認爲說實話,重新考慮您在數據庫中存儲/識別這些項目的方式會很好。

+0

+1爲重新思考。 – 2011-04-04 14:28:13

0

你可以永遠只是這樣來做:

創建3個表:

  • 畫廊 - >與列 (ID,標題)
  • 文件 - >使用的列(ID , 畫廊,名,文件名)
  • 評論 - >與列(ID, 的file_id,評論)

然後,您可以在「畫廊」表格中創建所有畫廊名稱。創建圖庫時,您可以將要顯示的所有圖像放在文件夾中,例如上傳/。然後,您可以將該文件的名稱(也可能會生成隨機文件名)和真實名稱一起插入數據庫中。例如「海灘上的海豚」可能會指向位於上傳文件夾中的dolphins1234142.png。您的所有評論將在評論表中,您將設置與文件表的關係。這將允許您對某個圖像發表評論。

只是我對畫廊系統的看法,希望它是有道理的。