2012-05-11 109 views
0

我聲明以下函數從目錄中獲取一個隨機圖像。我想在相同的代碼中使用相同的函數從不同的目錄中獲取隨機圖像。現在的問題是,我必須要改變$路徑,但我已經用它在聲明的同時,我想,當我使用功能2時第二次使用相同的函數

宣言部分

function getImagesFromDir($path) { 
$images = array(); 
if ($img_dir = @opendir($path)) { 
    while (false !== ($img_file = readdir($img_dir))) { 
     // checks for gif, jpg, png 
     if (preg_match("/(\.gif|\.jpg|\.png)$/", $img_file)) { 
      $images[] = $img_file; 
     } 
    } 
    closedir($img_dir); 
} 
return $images; 
} 

我用它來使用不同的路徑這種方式第一次

$root = ''; 

$path = 'frames/'; 

$imgList = getImagesFromDir($root . $path); 

$img = getRandomFromArray($imgList); 

我怎麼使用它第二次,以便它從不同的目錄中選擇圖像。

+2

你是如何調用該函數?這個錯誤表明你實際上試圖重新聲明它,而不是把它稱爲 – billyonecan

+0

你想要使用或重新聲明?你不是在上面的代碼中的任何地方調用函數。 – itachi

+0

您可以*使用*(調用)函數多次,但只能*聲明*一次。 'function some_func(){$ do ='something'; } some_func(); some_func();' – DaveRandom

回答

1

大概你沒有這個函數調用兩次,但是聲明瞭它兩次。

聲明:

function getImagesFromDir($path) { 
$images = array(); 
if ($img_dir = @opendir($path)) { 
    while (false !== ($img_file = readdir($img_dir))) { 
     // checks for gif, jpg, png 
     if (preg_match("/(\.gif|\.jpg|\.png)$/", $img_file)) { 
      $images[] = $img_file; 
     } 
    } 
    closedir($img_dir); 
} 
return $images; 
} 

電話:

$images1 = getImagesFromDir("/var/www/images1"); 
$images2 = getImagesFromDir("/var/www/images2"); 

,如果你寫

function getImagesFromDir($path) .... 

再次任何地方它被重新聲明 PHP不支持此

如果您需要多次聲明該函數的文件,也會發生這種情況。

- 編輯---

$strRoot = ''; 

$astrImages = array(); 

$astrImages[] = array('path' => 'frames/', 'image' => ''); 
$astrImages[] = array('path' => 'etc1/', 'image' => ''); 
$astrImages[] = array('path' => 'etc2/', 'image' => ''); 
$astrImages[] = array('path' => 'etc3/', 'image' => ''); 


foreach($astrImages as $nIndex => $astrImage) 
{ 
    $imgList = getImagesFromDir($strRoot . $astrImage['path']); 

    $astrImages[$nIndex]['image'] = getRandomFromArray($imgList); 
} 
+0

我hv編輯它..請再次閱讀這個問題 –

+0

也編輯它:) –

+0

我做了同樣的事情。但問題是我再次使用$ path,所以當我需要第一個值時,它需要$ path的第二個值。 $ dest = imagecreatefromjpeg(「user.jpg」); $ src = imagecreatefromjpeg(「$ path $ img」);imagealphablending($ dest,false);imagesavealpha($ dest,true); –

相關問題