不确定这在这里是否合适,但我正在尝试弄清楚横幅旋转器网站是如何使用标准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>
因此。。。
您只需要在名为campaign1
、campaign2
的根目录中创建所需的文件夹。。。等等。
然后在每个文件夹中放入当前活动的横幅图像。。。
例如:在文件夹campaign1
中放入001.png
、002,png
、003.png
、004.jpg
、005.jpg
等图像。。。(这些文件名与您的活动横幅相匹配(。
例如:在文件夹campaign2
中放入图像,如001.png
、002,png
、003.png
、004.jpg
、005.jpg
、006.gif
、007.png
、008.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上运行良好。
剩下的就交给剧本了!
希望这对你有帮助!