在html通讯模板中随机显示图片+链接

问题描述 投票:0回答:1

比方说,我有4张图片的清单,每次加载新闻通讯时,我试图随机显示其中2张。

我有一个具有以下数组的文件show_image.php:

$images = array(
  0 => array(
    'image' => 'http://example.com/img/partner1.jpg'
    'link' => 'http://www.example1.com'
  ),
  1 => array(
    'image' => 'http://example.com/img/partner2.jpg'
    'link' => 'http://www.example2.com'
  ),
  2 => array(
    'image' => 'http://example.com/img/partner3.jpg'
    'link' => 'http://www.example3.com'
  ),
  3 => array(
    'image' => 'http://example.com/img/partner4.jpg'
    'link' => 'http://www.example4.com'
  )
);

在我当前的情况下,(html)通讯模板中的图像如下所示:

<a href="http://example.com/show_image.php?zone=1&field=link">
  <img src="http://example.com/show_image.php?zone=1&field=image">
</a>
<a href="http://example.com/show_image.php?zone=2&field=link">
  <img src="http://example.com/show_image.php?zone=2&field=image">
</a>

如您所见,对随机图像和链接的调用是分开的,导致php脚本以与随机图像不匹配的随机链接作为响应。

任何人都可以向我指出正确的方向,如何通过正确的相应链接随机显示图像?

php html image random newsletter
1个回答
0
投票

首先,您的代码中存在语法错误。您的所有子数组都缺少逗号:

0 => array(
    'image' => 'http://example.com/img/partner1.jpg' // <-- Error
    'link' => 'http://www.example1.com'
  )

应该是:

0 => array(
    'image' => 'http://example.com/img/partner1.jpg', // <-- Fixed
    'link' => 'http://www.example1.com'
  )

您应该使用rand()随机获取图像:

$images = array(
    0 => array(
      'image' => 'http://example.com/img/partner1.jpg',
      'link' => 'http://www.example1.com'
    ),
    1 => array(
      'image' => 'http://example.com/img/partner2.jpg',
      'link' => 'http://www.example2.com'
    ),
    2 => array(
      'image' => 'http://example.com/img/partner3.jpg',
      'link' => 'http://www.example3.com'
    ),
    3 => array(
      'image' => 'http://example.com/img/partner4.jpg',
      'link' => 'http://www.example4.com'
    )
  );

$total_images = count($images) - 1; // Get total number of images. Deducted one because arrays are zero-based

$random_img = rand(0, $total_images); // Get a random number between 0 and $total_images

echo $images[$random_img]['image'] . '<br />';
echo $images[$random_img]['link'] . '<br />';
© www.soinside.com 2019 - 2024. All rights reserved.