English 中文(简体)
如何在网页上显示随机图片?
原标题:How to show a random picture in a web page?
  • 时间:2012-05-27 12:43:21
  •  标签:
  • php
  • html

我的网站在某个地方有图像, 当用户重新加载页面时, 他应该在同一地方看到不同的图像。 我有 30 张图像, 我想在每次加载时随机修改 。 我该怎么做?

问题回答

使用“ 图片信息”( 文件名或路径) 进行数组( 文件名或路径),例如

$pictures = array("pony.jpg", "cat.png", "dog.gif");

随机调用该数组的一个元素,通过

echo  <img src=" .$pictures[array_rand($pictures)]. " /> ;

看起来怪怪的,但工作。

选择随机图像的实际行为需要随机数字。 有几种方法可以帮助:

您可以将第二个函数视为使用第一个函数的快捷键,如果您是专门处理一个数组的。例如,如果您有一组图像路径可以选择要显示的图像路径,您可以随机选择像这样的图像路径:

$randomImagePath = $imagePaths[array_rand($imagePaths)];

如果您以其他方式重新存储/检索图像, 且您没有指定, 那么您可能无法轻易使用 < code> array_ rand () 。 但最终, 您需要生成一个随机数字。 因此, 使用 < code> rand () 将对此有效 。

如果您将信息存储在数据库中,您也可以选择随机图像:

MySQL :

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

PgSQL :

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Best, Philipp

在弹出时创建随机图像的一个简单方法就是下面的这个方法。

(注: 您必须将图像重新命名为“ 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; ?>

这个方法很简单,每次我需要随机图像时 我都会使用这个方法。

希望这有帮助!! )

我最近写了这个, 每页加载不同的背景。 只需用您的图像路径替换常数 。

它所做的就是在您的图像目录中循环, 并随机从中选择一个文件。 这样您就不需要在数组或 db 中跟踪您的图像。 只要将图像上传到您的图像目录中, 就会被选中( 随机) 。

调用类似 :

$oImg = new Backgrounds ;
echo $oImg -> successBg() ;


<?php

class Backgrounds
{

  public function __construct()
  {
  }

  public function succesBg()
  {  
    $aImages = $this->_imageArrays( constantsIMAGESTRUE, "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 . " " );
    }
  }

}

?>




相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

image changed but appears the same in browser

I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签