私の Web サイトの特定の場所に画像があり、ユーザーがページをリロードすると、同じ場所に別の画像が表示されるはずです。30 枚の画像があり、リロードするたびにランダムに変更したいと考えています。それ、どうやったら出来るの?
5 に答える
次のように、持っている「画像情報」(ファイル名またはパス)で配列を作成します
$pictures = array("pony.jpg", "cat.png", "dog.gif");
を介してその配列の要素をランダムに呼び出します
echo '<img src="'.$pictures[array_rand($pictures)].'" />';
奇妙に見えますが、機能します。
ランダムな画像を選択する実際の行為には、乱数が必要になります。これに役立ついくつかの方法があります。
特に配列を扱っている場合、2 番目の関数は最初の関数を使用するためのショートカットと考えることができます。したがって、たとえば、表示したいものを選択する画像パスの配列がある場合、次のようにランダムなものを選択できます。
$randomImagePath = $imagePaths[array_rand($imagePaths)];
指定していない他の方法で画像を保存/取得している場合はarray_rand()
、簡単に使用できない場合があります。しかし、最終的には、乱数を生成する必要があります。したがって、これにはいくつかの使用rand()
が機能します。
データベースに情報を保存する場合は、ランダムな画像を選択することもできます。
MySQL:
SELECT column FROM table
ORDER BY RAND()
LIMIT 1
PgSQL:
SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1
ベスト、フィリップ
私は最近、ページの読み込みごとに異なる背景を読み込むこれを作成しました。定数を画像へのパスに置き換えるだけです。
それが行うことは、imagedirectoryをループし、そこからランダムにファイルを選択することです。このように、配列やデータベースなどで画像を追跡する必要はありません。imagedirectoryに画像をアップロードするだけで、画像が(ランダムに)選択されます。
次のように呼び出します:
$oImg = new Backgrounds ;
echo $oImg -> successBg() ;
<?php
class Backgrounds
{
public function __construct()
{
}
public function succesBg()
{
$aImages = $this->_imageArrays( \constants\IMAGESTRUE, "images/true/") ;
if(count($aImages)>1)
{
$iImage = (int) array_rand( $aImages, 1 ) ;
return $aImages[$iImage] ;
}
else
{
throw new Exception("Image array " . $aImages . " is empty");
}
}
private function _imageArrays( $sDir='', $sImgpath='' )
{
if ($handle = @opendir($sDir))
{
$aReturn = (array) array() ;
while (false !== ($entry = readdir($handle)))
{
if(file_exists($sDir . $entry) && $entry!="." && $entry !="..")
{
$aReturn[] = $sImgpath . $entry ;
}
}
return $aReturn ;
}
else
{
throw new Exception("Could not open directory" . $sDir . "'" );
}
}
}
?>
ポップアップでランダムな画像を作成する簡単な方法は、以下の方法です。
(注:画像の名前を「1.png」、「2.png」などに変更する必要があります)
<?php
//This generates a random number between 1 & 30 (30 is the
//amount of images you have)
$random = rand(1,30);
//Generate image tag (feel free to change src path)
$image = <<<HERE
<img src="{$random}.png" alt="{$random}" />
HERE;
?>
* Content Here *
<!-- Print image tag -->
<?php print $image; ?>
この方法は簡単で、ランダムな画像が必要なときはいつもこれを使用します。
お役に立てれば!;)