繁体   English   中英

刷新包含php的div包括

[英]Refreshing a div that contains php include

我有一个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>

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

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

我不确定这是否会有所帮助,但是你可以做一些替代方案:

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

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

你有几个问题。

  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)] );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM