使用图像文件链接可以显示随机横幅



不确定这在这里是否合适,但我正在尝试弄清楚横幅旋转器网站是如何使用标准html图像代码来返回随机横幅的?

<a target=_blank href=http://intellibanners.com/click.php?cid=campaign1>
<img border=0 src=http://intellibanners.com/campaign1.jpg>
</a>

在上面的例子中,html将显示该活动的随机图像。

一开始我有点心血来潮,想看看我是否可以设置类似的东西来处理不同的图像大小,但现在它让我发疯了。。。试图弄清楚如何从图像url到数据库调用以发回不同的图像!?

没有幸运地搜索想法或示例,可能是因为我不知道我实际上应该寻找什么样的流程或功能?

我认为必须对所有图像调用进行某种url重写,重定向到处理程序脚本。。。

该脚本调用数据库,从指定的活动中获取随机图像,更新统计数据等。

php头响应是否可能返回相应的图像文件?

但其中大部分对我来说都是新的,我不知道在哪里/如何寻找指导或例子来让我开始。

如果有人对此有任何想法,甚至是我需要的措辞/功能,可能会帮助我在自己的搜索中达到目的,我们将不胜感激!

(我还安装并测试了大约12个不同的旋转器脚本,希望能找到一个同样有效的,但也没有运气(。

谢谢!

马特

我写了一个php脚本,假设您的网站根目录中存在所需的文件夹。然后,您可以在网站的任何位置以简单的方式调用它。这是我的脚本:

rotate.php

<?php
##########################################################
# Simple Script Random Images Rotator • 1.4 • 04.01.2020 #
# Alessandro Marinuzzi [alecos] • https://www.alecos.it/ #
##########################################################
function rotate($folder) {
if ((file_exists($_SERVER['DOCUMENT_ROOT'] . "/$folder")) && (is_dir($_SERVER['DOCUMENT_ROOT'] . "/$folder"))) {
$list = scandir($_SERVER['DOCUMENT_ROOT'] . "/$folder");
$fileList = array();
$img = '';
foreach ($list as $file) {
if ((file_exists($_SERVER['DOCUMENT_ROOT']  . "/$folder/$file")) && (is_file($_SERVER['DOCUMENT_ROOT']  . "/$folder/$file"))) {
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if ($ext == 'gif' || $ext == 'jpeg' || $ext == 'jpg' || $ext == 'png') {
$fileList[] = $file;
}
}
}
if (count($fileList) > 0) {
$imageNumber = time() % count($fileList);
$img = $folder . '/' . $fileList[$imageNumber];
}
return $img;
} else {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/$folder", 0755, true);
}
}
?>

现在,您可以在需要的位置创建一个index.php文件,并放置以下行:

<?php include("your_path/rotate.php"); ?>

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
<img border="0" src="/<?php echo rotate('campaign1'); ?>">
</a>

其他类似的:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
<img border="0" src="/<?php echo rotate('campaign2'); ?>">
</a>

因此。。。

您只需要在名为campaign1campaign2的根目录中创建所需的文件夹。。。等等。

然后在每个文件夹中放入当前活动的横幅图像。。。

例如:在文件夹campaign1中放入001.png002,png003.png004.jpg005.jpg等图像。。。(这些文件名与您的活动横幅相匹配(。

例如:在文件夹campaign2中放入图像,如001.png002,png003.png004.jpg005.jpg006.gif007.png008.jpg。。。(这些文件名与您的活动横幅相匹配(。

请注意,如果你不想重命名你的横幅图像,你可以使用原始名称,我的脚本将以任何方式工作。

我的脚本将把所有希望的输出都变成这样:

campaign1:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
<img border="0" src="/campaign1/002.jpg">
</a>
<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign1">
<img border="0" src="/campaign1/007.jpg">
</a>

campaign2:

<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
<img border="0" src="/campaign2/004.png">
</a>
<a target="_blank" href="http://intellibanners.com/click.php?cid=campaign2">
<img border="0" src="/campaign2/005.gif">
</a>

再见,在本地主机网站上测试所有内容。。。对我来说,在PHP 7.4.5和Apache 2.4.43上运行良好。

剩下的就交给剧本了!

希望这对你有帮助!

最新更新