2011-06-06 61 views
1

我想讓網頁在加載時顯示多個隨機圖像。我想過幾種解決方案,但我真的很希望能夠將圖像轉儲到文件夾而無需重命名它們,網頁將從文件夾中的這些圖像中進行選擇並顯示它們Web,SQL:儘管文件名顯示隨機圖像,但從文件夾中加載圖像

我可以想象一個PHP解決方案這將顯示文件夾中的隨機圖像,但它需要查找某些名稱。

所以我的下一步是要有一個SQL數據庫,其中每個圖像都有一個關鍵字,並且隨機選擇10個關鍵字 - 與它們關聯的圖像將被傳遞到數組中,文檔將加載要點。

但現在我想我需要知道如何通過讓它讀取文件夾來自動填充SQL數據庫?

洞察讚賞,如果我沒有推倒重來越好

回答

3

水珠就像在文件系統中,例如支持通配符

$files = glob('/path/to/files/*.jpg'); 
$yourRandomFile = array_rand($files); 

這將返回一個隨機的JPG文件,基於它的擴展名。

+0

啊這是正確的軌道,有沒有這個函數的JavaScript版本呢? – CQM 2011-06-06 05:19:31

+0

不是真的,在JavaScript中你不會知道服務器上有什麼文件。你將不得不從服務器加載所有文件名,將它們寫入一個javascript數組,並使用'Math.random()'.. – konsolenfreddy 2011-06-06 05:33:45

+0

是的,我剛剛與php函數一起使用現有HTML頁面的巨大回聲聲明 – CQM 2011-06-06 06:06:59

1

這應做到:

function your_dir ($directory) 

{ 

$results = array(); 

$handler = opendir($directory); 

while ($file = readdir($handler)) { 

    if ($file != "." && $file != "..") { 

    $results[] = $file; 

    //or sql query for each file 

    $sql = mysql_query("SELECT * FROM your_table WHERE your_file = '".$file."'"); 
    if(mysql_num_rows !== 0){ 

    //your query... 

    } 

    // 

    } 


} 

closedir($handler); 

return $results; 

} 


$directory = '/path/to/your/directory'; 

your_dir($directory); 

可能會更好地從數據庫中第一把它們放到一個數組選擇現有的文件,並排除它們,而不是檢查每一個。

+0

我應該請遵循此SQL路由,因爲圖像需要縮略圖以符合 – CQM 2011-06-06 06:11:06

+0

您可以使用此循環同時創建縮略圖,這完全取決於您的文件夾中有多少個文件 – Sparkup 2011-06-06 06:15:03

+0

我實現的方法取而代之使用僅PHP。我使用了glob函數來獲取數組中的文件,然後我洗了數組並對它進行了拼接。每當我調用圖像時,我也可以將其稱爲相應的縮略圖文件,因爲它遵循命名約定。我做了一個額外的函數來替換一個子字符串,並將該新字符串作爲縮略圖文件返回。 – CQM 2011-06-06 08:43:21

0

你可以做如下。
1.閱讀:在你想要的頁面加載圖像
2.專賣店陣列圖像名稱
3.現在使用的隨機函數從1到數組
4.考慮的大小產生了一些完整的目錄生成的數字作爲數組的關鍵字並使用該圖像名稱放置圖像。

相關問題