这是一个在您的网站上随机化横幅的小技巧。有点快速简陋。它需要在PHP页面上才能工作。
首先,我们需要在您的服务器上设置一个文件夹来存放图片。我们需要按顺序命名图片,例如,mypicture1.jpg、mypicture2.jpg和mypicture3.jpg等等。
下一步是编辑您网站上的横幅代码以反映您新的图像文件位置。如果您有…
<img src="//www.yoursite.com/random_images_folder_path/mypicture.jpg" />
它将变成…
<img src="//www.yoursite.com/random_images_folder_path/mypicture<?php
echo(mt_rand(1,3)); ?>.jpg">
MT_Rand 是一个PHP函数,它从第一个数字随机到一个数字,在我们的例子中是1到3。您可以根据您拥有的图片数量设置它(因为您无法随机化您没有的东西)。
您也可以将此图像放在一个PHP文件中,例如名为mypicture.php,并将其包含在您的横幅区域中。这样您只需在一个地方更改它。
因此,打开一个新的txt文件并输入上述随机图像代码。将文本文件保存为.php扩展名到您的服务器。然后在您的图片区域包含以下代码。
<?php include("http://www.yoursite.com/mypicture.php"); ?>
您也不必使用绝对路径。我这样做是为了简洁和简单。
好吧,这就是全部内容。希望这对某些人有所帮助。
这篇文章由 Chris St. Amand 撰写。Chris过去8年一直是自由职业的网页设计师和开发人员。
作为一个PHP“新手”,这对我来说非常有用,谢谢!
Chris
简洁明了——我之前想在一个页面上显示大约100张图片,并且图片以随机顺序排列,但从未实现过。问题是我不想让任何图片出现多次。
我考虑过将图片加载到数据库中,然后遍历它们以确保它们是随机且唯一的,但这似乎是解决相对简单问题的一种复杂方法。
有什么想法吗?
@Rich:您是在谈论幻灯片类型的演示吗?
此技术仅在页面加载时随机化图像,并且仅在页面重新加载时才会更改。如果您想确保他们使用此技术不会收到相同的随机图像,则需要使用cookie跟踪他们已查看的图像,将您的随机图像与该列表进行比较,然后在发生冲突时生成一个新的图像。此外,请记住在cookie中包含99个图像引用后将其清除。
不过,我不是这方面的专家,显然,这可能是一种愚蠢的方法。这只是我想到的第一个方法=)
我很高兴人们发现它有用。这可能只是关于此主题的一系列文章中的第一篇文章。谁知道呢 :)
据称MT_Rand比RAND更好。我读到RAND即使您有100张图片,也常常会再次显示相同的图片。但MT_Rand是真正的随机。
http://us.php.net/rand
http://us.php.net/manual/en/function.mt-rand.php
巧妙的技巧
@Rich:我不知道您对PHP的整体了解,但它并不难。
首先,您需要将所有图像放入数组中
$pictures_array = new Array('picture1.jpg', 'picture2.jpg', '...');
现在,既然您知道要显示的图像数量,您可以使用简单的for循环结构
for($i=0; $i";
unset($pictures_array[$random_key])
}
希望这有帮助您 :)
o.O
现在我看起来很蠢,因为我编写的一部分代码由于某种原因被删除了
这绝对不是最干净的方法,但如果它有效,那就有效!
很棒的文章——尽管为什么它是“简陋的”?它完成了工作!
我认为Chris S. 将其称为“简陋的”,仅仅是因为它不是非常动态。如果图像数量发生变化或图像的文件名发生变化,您需要进入代码并手动更改内容。有一些花哨的方法可以从文件夹中读取文件名并从中显示随机图像,这要更不快速且更不简陋。
但我同意,这是一种非常简单有效的方法来显示随机图像,我相信我很快就会在某个地方使用它!
为什么不在CSS中为背景图像设置一个php文件?只要您设置了固定的宽度/高度,它就会按预期呈现。然后,您可以完全使用元素上的类/id,而不是使用img标签。
因为您需要在配置中进行设置。并非所有服务器都支持使用php扩展名作为图像。
您还可以使用此方法随机化CSS中的样式。例如:
http://granimpetu.com/articulos/estilos-aleatorios-con-css-y-php/
啊,Horacio真是太聪明了!
简洁明了,我喜欢。Chris干得好,这对我来说非常有用!
所以,在阅读了Horacio的评论后,我的问题是,我们是否可以将此php用于包含图像和文本的div,甚至.css文件?请查看jontangerine.com以获得更多证据证明这是可能的。我给Jon发了邮件,但他把我引向了他的一个朋友,我还没有收到回复。任何想法都将不胜感激!谢谢