2012-05-11 16 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回使用します。

+2

どのように関数を呼び出していますか?このエラーは、あなたが実際にそれを再宣言しようとしているのではなく、 – billyonecan

+0

と呼ぶのではなく、再使用することを提案していますか?上のコードのどこにでも関数を呼び出すわけではありません。 – itachi

+0

関数を何回でも使用することはできますが、*宣言することはできません。 'function some_func(){$ do = '何か'; } some_func(); some_func(); ' – DaveRandom

答えて

1

おそらくを呼び出すと、関数が2回呼び出されますが、と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; 
} 

呼び出し:

$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

私はそれを編集しました.. pls再び質問を読む –

+0

それも編集しました:) –

+0

私は同じことをしました。しかし、問題は$ pathをもう一度使うことで、最初の値が必要なときに$ pathの2番目の値をとることです。 $ dest = imagecreatefromjpeg( "user.jpg"); $ src = imagecreatefromjpeg( "$ path $ img"); imagealphablending($ dest、false); imagesavealpha($ dest、true); –

関連する問題