【问题标题】:URL rotator in specific order [closed]特定顺序的 URL 旋转器 [关闭]
【发布时间】:2012-04-27 13:53:45
【问题描述】:

我想创建一个 URL Rotator 脚本,它将按特定顺序而不是随机旋转我的 URL。

假设我有 100 个要旋转的 URL,我将它们排序,旋转器会从第一个到最后一个显示它们,然后返回到第一个 URL,依此类推。

如果可能的话,它可以是一个没有数据库的简单 php 脚本吗?

【问题讨论】:

  • 您想向每个用户显示链接顺序,还是向所有用户显示链接顺序?换句话说,如果我访问此页面,我应该按顺序查看所有单独的链接,还是应该作为一个整体的整个受众群体按顺序查看链接?

标签: php url rotator


【解决方案1】:

可以在没有数据库的情况下完成,是的。您可以创建一个简单的脚本,其中包含任意 URL 数组和一个包含数字的文本文件。该数字跟踪要显示的 URL 的数组索引。加载脚本后,读取文件,获取编号并显示关联的 URL。然后递增数字并将其写回文件,除非数字现在超过数组的大小 - 然后将零写回文件。

要使用文件中的 URL(并且没有计数器)来完成此操作,请将所有 URL 放在一行文本中。用| 管道字符分隔它们。在下一行,输入一个零。读取第一行并在管道字符上展开以创建一个数组。从数组中获取第一个元素,使用该 URL,并将第一个数组元素移动到数组的末尾。将带有管道字符的数组内插回字符串,并将文件内容覆盖到文本文件中。

根据您的计划,这将或不会与 cookie 一起使用。由于 cookie 存储在客户端浏览器中,因此您只能跟踪单个访问者所看到的内容。如果需要考虑整个受众,这将无济于事,因为您需要一个组数组索引来跟踪,而不是单个的。

【讨论】:

  • 文件不是数据库它存储数据的方式是什么? :D
  • 你能把这个php页面的完整代码贴出来吗?
  • @Vytautas 如果你想这样做,你甚至可以将 php 文件本身称为 数据库。操作人员可能正在寻找一个简单的文本文件而不是 rdms。
  • 是的,我想要.txt文件中的URL列表和.php文件中的旋转器,也许使用cookie来记住顺序?!
  • 也许,很难猜出他想要什么..
【解决方案2】:
<?php
define('FILEDB', 'count.db');
define('URLDB', 'url.db');

function readURLS()
{
  $fp = fopen(URLDB, 'r');

  if( null == $fp )
    return false;

  $retval = array();
  while (($line = fgets($fp)) !== false)
  {
    $retval[] = $line;
  }

  return $retval;
}

$list = readURLS();

if( false === $list )
{
  echo "No URLs available";
}
else
{
  $fp = fopen(FILEDB, 'a+');

  $count = (fread($fp, filesize(FILEDB)) + 1) % count($list);

  ftruncate($fp, 0);
  fwrite($fp, "{$count}");
  fclose($fp);

  echo $list[$count];
}

这行得通。


根据新要求进行了更新。
您需要一个名为 url.db 的文件(或在 define('URLDB', 'xxx') 之后填写的任何内容 每行都是一个 URL 条目。

count.db 可以存在,但不需要。最好在其中创建一个简单的0

它将在每个“请求”中轮流查看url.db 文件中的所有 URL 条目。

但是,这不是并发安全的。如果 A 请求该页面,而 B 也请求该页面,如果 B 在 A 将新内容写入 count.db 之前读取 count.db,则 A 和 B 可能会看到相同的 URL

【讨论】:

  • 您能否发布创建此脚本所需的所有步骤?我不是 php 大师 :(
  • @user1344872 更新了我的答案。
  • 我对此进行了测试,但它没有在 iframe 中显示 URL 或重定向到它!它只是将 URL 显示为文本!
  • 好的,伙计们,刚刚解决了这个问题,我想这就是我需要的:)。 @Daan Timmer:非常感谢。
  • 为了让这段代码正常工作,你必须将 url.db 中的 URL 添加为 iframe ,每行一个 iframe ,当旋转页面加载时,它会显示你输入的 iframe url.db .
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 2020-07-09
相关资源
最近更新 更多