2012-09-19 134 views
0

我需要從目錄中選擇一個隨機圖像。我見過一些使用glob()的方法;但我希望能使用scandir();功能。從php目錄中加載隨機圖像

function random_img(){ 
$imageDir = wptouch_get_bloginfo('template_directory').'/images/default-tiles/'; 
$images = scandir($imageDir); 
$randomImage = $images[array_rand($images)]; 

return $randomImage; 
} 

功能上面應該拉一個圖像,而是我得到這個錯誤:

SCANDIR( 「/ MYFILE /目錄/」)未能打開目錄:在「/文件MyFile沒有執行/目錄/」

+0

'/ images/default-tiles /'真的是你的**本地**圖像目錄嗎?通常,如果您試圖通過不同的fopen包裝(例如HTTP)列出目錄的內容,您會收到類似這樣的錯誤。 – Brad

+0

我編輯了我的問題,因此它包含真正的動態路徑。 – HjalmarCarlson

+1

echo'wptouch_get_bloginfo('template_directory')'時輸出什麼? – Brad

回答

0

試試這個,我想你正在使用的路徑不正確:

$imageDir = $_SERVER['DOCUMENT_ROOT'] . 
      get_template_directory_uri() . 
      '/images/default-tiles/'; 
+0

這使我更接近,但最終唯一的解決方案已經工作是這樣的:\t $ imageDir = ABSPATH.'wp-content/wptouch-data/themes/CMN-Touch-Base/iphone/images/default-tiles /' ; – HjalmarCarlson

0

的問題是,在目錄中,您是U sing實際上不是您本地系統上的目錄,而是一個URL。您無法在URL中列出文件。如何知道應該包含什麼?沒有一些普遍實施的魔術,通過HTTP的資源甚至不必與文件對應。

您需要做的是找出這些文件在本地系統上的位置,並改爲使用該路徑。