0

我有一个 php 代码,它在页面加载和刷新时显示一个随机文件。此代码位于 ../ads/food/responce.php 中,您将在下面的其他脚本中看到。

<?php
$ad = glob("../ads/food/*.php");
$adfood = $ad[mt_rand(0, count($ad) -1)];
include ($adfood);
?>

我想旋转显示的文件而无需刷新页面。(“就像图像滑块一样”)

我试过的:

我尝试了一个脚本来刷新 div,但它似乎显示的是警告而不是文件。您可以在这里看到错误http://whatanswered.com/food/what-c​​an -i-do-with-cornflour.php

<script type="text/javascript">
$(document).ready(function() {
setInterval(function()
{
     $('#button').fadeOut("fast").load('../ads/food/responce.php').fadeIn("slow");
}, 10000);

});
</script>

<div id="button">
<?php include("../ads/food/responce.php");?>
</div>
4

3 回答 3

2

这只是因为路径("../ads/food/*.php")不会导致包含任何 php 的文件夹(即 : http://whatanswered.com/ads/ads/food)。

您必须编写../../ads/food/*.php这将导致的路径http://whatanswered.com/ads/food/(其中包含一些 php 文件)

于 2013-02-07T21:05:54.760 回答
0

我不确定这是否有帮助,但这里有一些你可以做的选择:

  • 使用排序的 iframe 链接到将自动刷新并生成新页面的页面
  • 使用 Ajax 在您的站点上嵌入其他页面。

这是使用Ajax嵌入站点的一些参考。

于 2013-02-07T21:06:23.813 回答
0

你有几个问题。

  1. 您的 responce.php 文件已经在ads/food/目录中。正如@edi9999 已经提到的那样,您的路径应该是../../ads/food/*.php或者您可以只使用*.php.
  2. 您的随机文件选择器偶尔会返回 responce.php。这可能不会导致任何真正的问题,因为 response.php 只会递归地调用自己。但是如果你的文件列表很短,那么它有可能会递归很多。
  3. 如果您的目录非常大(超过 1000 个项目),您可能会遇到内存问题。

您可以使用此代码排除 responce.php 文件。此外,还有一个array_rand()专门用于从数组中选择单个项目的功能。

$ad = glob("*.php");
$ad = array_filter($ad, function($name) {
    return preg_match('/response.php$/', $name) === 0 ;
}); 
include( $ad[array_rand($ad)] );
于 2013-02-07T21:44:36.557 回答